python __nonzero__方法

类的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


posted @ 2017-10-25 11:03  fredgui  阅读(3218)  评论(0编辑  收藏  举报