python的特殊方法__nonzero__()怎么用?什么情况就会调用它,举个例子,谢谢

如题所述

第1个回答  2010-12-01
类的__nonzero__方法用于将类转换为布尔值。通常在用类进行判断和将类转换成布尔值时调用。比如语句if A: print 'foo'中就会调用A.__nonzero__()来判断。下面这个程序应该能帮助你理解__nonzero__的作用。

class A:
def __nonzero__(self):
print 'A._nonzero__()'
return True

print 'A is not zero' if A() else 'A is zero'
print bool(A())本回答被网友采纳
第2个回答  2010-12-07
在真值测试时调用; 应该返回0或者1.当此方法未定义时, __len__ ()就会被调用.如果类没定
义__len__() ,没有定义__nonzero__(), 那么它就被看作为真.
相似回答