Python相当于设置if not not null

时间:2015-02-03 21:00:58

标签: python null

在红宝石中,我可以这样做:

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中是否有类似的单行内容?

3 个答案:

答案 0 :(得分:4)

只需使用or运算符即可。从链接页面:

  

x或y :如果x为false,则为y,否则为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

答案 1 :(得分:4)

Python的or运算符几乎相当于Ruby的|| - 而None可以在Python中使用,与{{1}类似在Ruby中。

所以,例如,

nil

会将a = None or 2 设置为a

你也可以使用更丰富的三元"运算符2 - something if condition else somethingelsea or b相同 - 但显然a if a else b更简洁易读,而您想要做的就是它支持的语义。

答案 2 :(得分:1)

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

x = a if a is not None else 999

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

一般语法是

ValueToBeUsedIfConditionIsTrue if Condition else ValueToBeUsedIfConditionIsFalse