Этот вопрос уже имеет ответ здесь:
C и много других языков имеют условное выражение (иначе троичный) оператор. Это позволяет Вам делать очень краткий выбор между двумя значениями на основе истины условия, которое делает выражения, включая присвоения, очень краткие.
Я пропускаю это, потому что я нахожу, что мой код имеет много условных присвоений, которые проводят четыре строки в Python:
if condition:
var = something
else:
var = something_else
Принимая во внимание, что в C это было бы:
var = condition? something: something_else;
Несколько раз в файле прекрасен, но если у Вас есть много условных присвоений, количество строк взрывается и, худшее из всех, глаз оттянут им.
Мне нравится краткость условного оператора, потому что это сохраняет вещи, которые я считаю нестратегическими от отвлечения меня при просматривании кода.
Так, в Python, там какие-либо приемы, которые можно использовать, чтобы заставить присвоение на одну строку приближать преимущества условного оператора, как я обрисовал в общих чертах их?
Python имеет такой оператор:
variable = something if condition else something_else
В качестве альтернативы, хотя и не рекомендуется (см. Комментарий @ karadoc):
variable = (condition and something) or something_else
В старом коде Python вы можете увидеть трюк:
condition and something or something_else
однако он был заменен значительно более совершенной конструкцией ... if ... else ...
:
something if condition else something_else