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 b
与 a if a else b
相同 - 但显然 or
更当您想做的正是它支持的语义时,简洁易读。
不要忘记现代的 if-else 语法:
x = a if a is not None else 999
(或您需要的任何条件)。这使您可以测试非 None 并且不容易出现空列表和类似问题。
一般语法是
ValueToBeUsedIfConditionIsTrue if Condition else ValueToBeUsedIfConditionIsFalse
在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 b
与 a if a else b
相同 - 但显然 or
更当您想做的正是它支持的语义时,简洁易读。
不要忘记现代的 if-else 语法:
x = a if a is not None else 999
(或您需要的任何条件)。这使您可以测试非 None 并且不容易出现空列表和类似问题。
一般语法是
ValueToBeUsedIfConditionIsTrue if Condition else ValueToBeUsedIfConditionIsFalse