類的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())
output:
A._nonzero__()
A is not zero
A._nonzero__()
True