Подтвердить что ты не робот

Как перегрузить метод Python __bool__?

Возможный дубликат:
определение "boolness" класса в python

Я думал, что это должно печатать "False", почему он печатает "True"?

>>> class Foo(object):
...   def __bool__(self):
...     return False
... 
>>> f = Foo()
>>> if f:
...   print "True"
... else:
...   print "False"
... 
True
>>>
4b9b3361

Ответ 1

Вы должны определить __nonzero__() в Python 2.x. Он был переименован в __bool__() в Python 3.x. (Имя __nonzero__() на самом деле предшествует внедрению типа bool на многие годы.)