这两个python习语有什么区别?
if data is not None:
return data
if data: return data
后者还将拒绝False
, 0
, []
, ()
, {}
, set()
,''
以及任何其他__bool__
方法返回 False 的值,包括大多数空集合。
Python 中的None
值常用于表示缺少值。当函数没有显式返回值时,它会自动出现。
>>> def f():
... pass
>>> f() is None
True
它通常用作可选参数的默认值,例如:
def sort(key=None):
if key is not None:
# do something with the argument
else:
# argument was omitted
如果您只if key:
在此处使用,则不会考虑评估为 false 的参数。明确比较与is None
是进行此检查的正确习惯用法。请参阅真值测试。