Duplicata possible:
définition de la "boolness" d'une classe en python
Je pensais que cela devrait imprimer "False", pourquoi est-il imprimé "True"?
>>> class Foo(object):
... def __bool__(self):
... return False
...
>>> f = Foo()
>>> if f:
... print "True"
... else:
... print "False"
...
True
>>>
Vous devez définir __nonzero__()
dans Python 2.x. Il a seulement été renommé en __bool__()
dans Python 3. x. (Le nom __nonzero__()
est en fait antérieur à l'introduction du type bool
de nombreuses années.)