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!