As we know, Python has boolean values for objects: If a class has a length attribute, every instance of it which happens to have length 0 will be evaluated as a boolean False (for example, the empty list).
In fact, every iterable, empty custom object is evaluated as False if it appears in boolean expression.
Now suppose I have a class foo with attribute bar. How can I define its truth value, so that, say, it will be evaluated to True if bar % 2 == 0 and False otherwise?
For example:
myfoo = foo()
myfoo.bar = 3
def a(myfoo):
if foo:
print "spam"
else:
print "eggs"
so, a(myfoo) should print "eggs".
Thanks!