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