Je ne comprends pas comment sont Ellipsis
et None
traités différemment par bool()
, lorsque les deux semblent être identiques en termes d'attributs pertinents pour les tests de la vérité.Python bool (Ellipsis) et bool (Aucun)
>>> bool(Ellipsis)
True
>>> bool(None)
False
>>> any([hasattr(Ellipsis, attr) for attr in ['__len__', '__bool__', '__nonzero__']])
False
>>> any([hasattr(None, attr) for attr in ['__len__', '__bool__', '__nonzero__']])
False
Y at-il quelque chose d'autre que je suis absent qui est utilisé pour les essais de vérité?
Y a-t-il d'autres objets (en plus
None
) qui évaluent àFalse
qui mettent en œuvre ni de__len__
ou__nonzero__
?
+1 pour obéir à la maxime intemporelle d'Obi-Wan: "Lire la source, Luke". Voir aussi [la documentation python sur le test de la valeur de vérité] (http://docs.python.org/py3k/library/stdtypes.html#truth-value-testing) – srgerg
@wim J'ai des sources Python sur ma machine locale donc je cherche juste à travers ça. Je n'utilise pas ipython donc je ne sais pas s'il peut rechercher les sources C. – yak
@srgerg Merci. J'ai ajouté le lien à la réponse. – yak