我认为这在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的工作方式略有不同。



