As we know, Python has boolean values for objects: If a class has a __len__ method, every instance of it for which __len__() happens to return 0 wi
__len__
__len__()
Refer to the Python docs for __nonzero__.
class foo(object): def __nonzero__( self) : return self.bar % 2 == 0 def a(foo): if foo: print "spam" else: print "eggs" def main(): myfoo = foo() myfoo.bar = 3 a(myfoo) if __name__ == "__main__": main()