Я не думаю, что это возможно в Python, поскольку то, что вы на самом деле пытаетесь сделать, вероятно, будет расширено до чего-то вроде этого:
num1 = 20 if someBoolValue else num1
Если вы исключите else num1
, выполучить синтаксическую ошибку, так как я совершенно уверен, что присвоение должно действительно что-то возвращать.
Как уже упоминали другие, вы могли бы сделать это, но это плохо, потому что вы, вероятно, просто запутаетесь, читаяэтот кусок кода в следующий раз:
if someBoolValue: num1=20
Я не большой поклонник num1 = someBoolValue and 20 or num1
по той же самой причине.Я должен дважды подумать о том, что делает эта линия.
Лучший способ добиться того, что вы хотите сделать, - это оригинальная версия:
if someBoolValue:
num1 = 20
Причина, по которой это лучшая версияпотому что совершенно очевидно, что вы хотите сделать, и вы не будете путать себя или кого-либо еще, кто позже соприкоснется с этим кодом.
Также, как примечание, num1 = 20 if someBoolValue
- этодопустимый код Ruby, потому что Ruby работает немного по-другому.