Почему это не работает так, как можно было бы наивно ожидать?
class Foo(object):
def __init__(self):
self.bar = 3
def __bool__(self):
return self.bar > 10
foo = Foo()
if foo:
print 'x'
else:
print 'y'
(Выходной сигнал x
)