170 похожих чатов

Как считаете, вот так писать (строчный иф внутри ф-строк) норм

или плохой тон?
write(f"Result: {'SUCCESS' if result.command.ok and result.test.ok else 'FAILURE'}")
write здесь это хитрая обертка над print

12 ответов

8 просмотров

Насколько хитрая?

Имхо, так лучше не писать, а вынести логику...

Я бы что то в таком плане бы делал OK = ('FAILURE','SUCCESS') write("Result: " + OK[result.command.ok and result.test.ok])

Patrick [in search of work]
Я бы что то в таком плане бы делал OK = ('FAILURE'...

Так лучше тоже не делать. всякий раз, когда ты кастуешь булевы как 0 или 1, и используешь их как индексы - это приводит к затруднениям в понимании твоего когда. Хорошо, если твой код достанется человеку, знакомому с такими подходами. Но вероятность натолкнуть следующего программиста на ошибку при таких подходах чрезвычайно высока. Лично я не против тернарных операций, но только там, где они оправданы. В примере автора её использование оправдано тем, что описание ведется в одну строку. Но применение самого однострочного сценария не оправдано ничем. Согласен с электроником. Изящнее было бы выделить логику отдельно от вывода. status = "FAILURE" if result.command.ok and result.test.ok: status = "SUCCESS" write(f"Result: {status}") так больше строк, но так совершенно точно понятно программисту что происходит, что пишется, откуда берется, и почему именно так

Alexander
Так лучше тоже не делать. всякий раз, когда ты кас...

Какую ошибку? Если он не поймет то загуглит или спросит у других. Какую ошибку можно получить при использовании bool как int не считая индексерора?

Sergey-Gureev Автор вопроса
Patrick [in search of work]
Насколько хитрая?

умеет внутри себя определять, чтоб запускается в гитлаб сиае и делать для него красивый вывод со сворачиваемыми разделами плюс должно поддерживать многопоточную работу и вовремя блокироваться, чтоб разделы не смешивались из джоб в разных тредах вообще, это все кусок штуковины для запуска старых непитоновых автотестов, оно довольно накурено

Sergey-Gureev Автор вопроса
Patrick [in search of work]
Я бы что то в таком плане бы делал OK = ('FAILURE'...

если б не сообщение ниже, я так и не понял, как это работает ))

Sergey-Gureev Автор вопроса
electron!c
Имхо, так лучше не писать, а вынести логику...

особенность в том, что этот статус как раз нужен только для того, чтоб написать его в вывод, больше он нигде не используется но я подумаю, спс

Sergey Gureev
особенность в том, что этот статус как раз нужен т...

Ну делаешь *аргс. И кидаешь свой иф не в ф строке а отдельно. Вот тебе и никто ничего не скажет

Sergey-Gureev Автор вопроса
Sergey Gureev
это да, мне просто нравятся ф-строки ))

просто старайся туда логику не вставлять, даже если они это позволяют))))

Sergey Gureev
особенность в том, что этот статус как раз нужен т...

Просто приннт должен выполнять функцию принята (каким бы он хитрым не был)) В данном случае это затрудняет чтение кода и отладку - вместо того, чтобы посмотреть значение переменной, нужно будет выполнять это выражение Но это имхо)

Похожие вопросы

Обсуждают сегодня

получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
вот такое это из хаскеловской или никсовой ситуации ? пока мне сложно отличить, может кто понимает last 10 log lines: > Running phase: updateAutotoolsGnuConfig...
Fedor
18
не понимаю как в какую сторону искать проблему вот так выглядит Tag в выводе Filtered tag: <a>, href: /url?esrc=s&q=&rct=j&sa=U&url=https://ru.wikipedia.org/wiki/Haskell&ved=2...
Fedor
8
Снова я с выводом номера вхождения подстроки в строку. Исправил код, номер элемента, с которого начинается подстрока в строке, выводит, но неправильно. Подскажите, пожалуйста,...
Ыиу
2
@dt0W3s1yQE75Mew ну чё как чувствуешь себя здесь бот? запомни тупое ты чучело - в ассемблере нету тянок
.
18
а вот так если по инструкции выше Y % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total ...
Fedor
7
ого, прикольно, а что пишешь?
CodWiz | Серёжа by CodWiz
32
#include <stdio.h> base( int size_2, int size_1, int ar_1[], int ar_2[][size_2] ){ int cm,im; int ar_3[size_2]; for(int num = 0; num <size_2; num++ ) { ...
Behemoth cat
11
Вопрос, не ставиться haskus-utils-variant (>=3.3 && <3.4) - говорит битый пакет под никсом, есть у кого мысли как чинить ?
Fedor
16
а вот вопрос куда копать не понимаю, вроде работает функция, но возращает странное take 1 ategs [TagBranch "a" [("href","/?sa=X&ved=0ahUKEwiQ7Pbhzs6FAxURBNsEHVRuDAgQOwgC")] [...
Fedor
6
Карта сайта