我有以下代码
num1 = 10 someBoolValue = True
我需要将值设置num1为20if someBoolValueis True; 否则什么也不做。所以,这是我的代码
num1
20
someBoolValue
True
num1 = 20 if someBoolValue else num1
有没有什么办法可以避免这...else num1部分让它看起来更干净?相当于
...else num1
if someBoolValue: num1 = 20
我试着用这样的替换它...else pass:num1=20 if someBoolValue else pass. 我得到的只是语法错误。我也不能省略这...else num1部分。
...else pass
num1=20 if someBoolValue else pass
我认为这在 Python 中是不可能的,因为您实际尝试做的事情可能会扩展为如下内容:
如果你 exclude else num1,你会收到一个语法错误,因为我很确定这个赋值实际上必须返回一些东西。
else num1
正如其他人已经提到的那样,您可以这样做,但这很糟糕,因为下次阅读该段代码时您可能最终会感到困惑:
if someBoolValue: num1=20
num1 = someBoolValue and 20 or num1出于完全相同的原因,我不是它的忠实粉丝。实际上,我必须三思而后行。
num1 = someBoolValue and 20 or num1
实际实现您想要做的最好方法是原始版本:
这是最好的版本的原因是因为它非常明显你想要做什么,你不会混淆自己,或者以后会接触到该代码的任何人。
另外,作为旁注,num1 = 20 if someBoolValue是有效的 Ruby 代码,因为 Ruby 的工作方式有点不同。
num1 = 20 if someBoolValue