или плохой тон?
write(f"Result: {'SUCCESS' if result.command.ok and result.test.ok else 'FAILURE'}")
write здесь это хитрая обертка над print
Насколько хитрая?
Имхо, так лучше не писать, а вынести логику...
Я бы что то в таком плане бы делал OK = ('FAILURE','SUCCESS') write("Result: " + OK[result.command.ok and result.test.ok])
Так лучше тоже не делать. всякий раз, когда ты кастуешь булевы как 0 или 1, и используешь их как индексы - это приводит к затруднениям в понимании твоего когда. Хорошо, если твой код достанется человеку, знакомому с такими подходами. Но вероятность натолкнуть следующего программиста на ошибку при таких подходах чрезвычайно высока. Лично я не против тернарных операций, но только там, где они оправданы. В примере автора её использование оправдано тем, что описание ведется в одну строку. Но применение самого однострочного сценария не оправдано ничем. Согласен с электроником. Изящнее было бы выделить логику отдельно от вывода. status = "FAILURE" if result.command.ok and result.test.ok: status = "SUCCESS" write(f"Result: {status}") так больше строк, но так совершенно точно понятно программисту что происходит, что пишется, откуда берется, и почему именно так
Какую ошибку? Если он не поймет то загуглит или спросит у других. Какую ошибку можно получить при использовании bool как int не считая индексерора?
умеет внутри себя определять, чтоб запускается в гитлаб сиае и делать для него красивый вывод со сворачиваемыми разделами плюс должно поддерживать многопоточную работу и вовремя блокироваться, чтоб разделы не смешивались из джоб в разных тредах вообще, это все кусок штуковины для запуска старых непитоновых автотестов, оно довольно накурено
если б не сообщение ниже, я так и не понял, как это работает ))
особенность в том, что этот статус как раз нужен только для того, чтоб написать его в вывод, больше он нигде не используется но я подумаю, спс
Ну делаешь *аргс. И кидаешь свой иф не в ф строке а отдельно. Вот тебе и никто ничего не скажет
это да, мне просто нравятся ф-строки ))
просто старайся туда логику не вставлять, даже если они это позволяют))))
Просто приннт должен выполнять функцию принята (каким бы он хитрым не был)) В данном случае это затрудняет чтение кода и отладку - вместо того, чтобы посмотреть значение переменной, нужно будет выполнять это выражение Но это имхо)
Обсуждают сегодня