Ответ 1
Вы должны определить __nonzero__()
в Python 2.x. Он был переименован в __bool__()
в Python 3.x. (Имя __nonzero__()
на самом деле предшествует внедрению типа bool
на многие годы.)
Возможный дубликат:
определение "boolness" класса в python
Я думал, что это должно печатать "False", почему он печатает "True"?
>>> class Foo(object):
... def __bool__(self):
... return False
...
>>> f = Foo()
>>> if f:
... print "True"
... else:
... print "False"
...
True
>>>
Вы должны определить __nonzero__()
в Python 2.x. Он был переименован в __bool__()
в Python 3.x. (Имя __nonzero__()
на самом деле предшествует внедрению типа bool
на многие годы.)