如果A vs如果A不为None:
我可以用吗:
if A:
代替
if A is not None:
后者似乎太冗长。有区别吗?
-
该声明
if A:
将调用
A.__nonzero__()
(请参阅特殊方法名称文档)并使用该函数的返回值。总结如下:object.__nonzero__(self)
要求执行真值测试和内置操作
bool()
;应该返回False
或True
,或者它们的整数等效值0
或1
。如果未定义此方法,__len__()
则调用该方法(如果已定义),并且如果其结果为非零,则将该对象视为true。如果一个类既未定义,也__len__()
未定义__nonzero__()
,则其所有实例均被视为true。另一方面,
if A is not None:
仅 将参考
A
与进行比较None
以查看其是否相同。