Python 相当于设置if not null

Python equivalent of setting if not null

在ruby我可以做到:

1.9.3-p448 :001 > a = 1 || 2
 => 1 
1.9.3-p448 :004 > a = nil || 2
 => 2 
1.9.3-p448 :005 > a = 1 || nil
 => 1 

Python有类似的单行本吗?

只需使用 or 运算符。来自链接页面:

x or y: if x is false, then y, else x

示例:

In [1]: 1 or 2
Out[1]: 1

In [2]: None or 2
Out[2]: 2

In [3]: 1 or None
Out[3]: 1

Python 的 or 运算符几乎等同于 Ruby 的 || —— 并且 None 可以用在 Python 有点类似于 nil 在 Ruby.

中的表现

因此,例如,

a = None or 2

会将 a 设置为 2

您还可以使用更丰富的 "ternary" 运算符,something if condition else somethingelse - a or ba if a else b 相同 - 但显然 or 更当您想做的正是它支持的语义时,简洁易读。

不要忘记现代的 if-else 语法:

x = a if a is not None else 999

(或您需要的任何条件)。这使您可以测试非 None 并且不容易出现空列表和类似问题。

一般语法是

ValueToBeUsedIfConditionIsTrue if Condition else ValueToBeUsedIfConditionIsFalse