Je suis passé par Truthiness in Python et j'ai compris que []
et des objets vides similaires sont interprétés comme False
en Python.Authenticité Python - Comportement différent entre différentes vérifications
Mais quand je tape dans ce qui suit dans REPL, il retourne False
:
>>> [] == False
False
Comment est-ce possible?
« Les deux objets sont de types différents, donc ils ne sont pas égaux "Cependant, c'est un peu plus complexe que ça. Par exemple. si vous déclarez votre propre classe avec 'def __eq __ (self, other): return True' alors les instances de cette classe seront égales à tout autre objet (?). –
Donc, l'instruction 'if' applique-t-elle implicitement cette conversion à' bool' par elle-même? Si oui, pourquoi n'applique-t-il pas la même conversion dans 'if [] == False'? Considérant que '[]' est interprété comme 'False' et' == 'vérifie l'égalité des valeurs, ne devrait-il pas retourner' True'? – chaudharyp
'[]' n'est ** absolument pas ** interprété comme False, ce qui n'est tout simplement pas vrai. C'est faux dans un contexte booléen, c'est tout. –