Ich ging durch Truthiness in Python und verstand, dass []
und ähnliche leere Objekte als False
in Python interpretiert werden.Python Wahrheit - Unterschiedliches Verhalten zwischen verschiedenen Überprüfungen
Aber wenn ich im folgenden in REPL geben, gibt sie False
:
>>> [] == False
False
Wie ist das möglich?
“nicht None und IST-Instanz nicht leer ist zwei Objekte sind von unterschiedlicher Art, also sind sie nicht gleich "Es ist jedoch etwas komplexer. Z.B. Wenn Sie mit 'def __eq __ (self, other) eine eigene Klasse deklarieren: Rückgabe True, dann sind Instanzen dieser Klasse gleich einem (?) anderen Objekt. –
Also gilt 'if' Anweisung implizit diese Umwandlung in' bool' selbst? Wenn ja, warum wendet es nicht dieselbe Umwandlung in 'if [] == False an? Wenn man bedenkt, dass '[]' als 'False' interpretiert wird und' == 'auf Gleichheit der Werte prüft, sollte es nicht' True' zurückgeben? – chaudharyp
'[]' wird ** absolut nicht ** als falsch interpretiert, das ist einfach nicht wahr. Es ist falsch in einem booleschen Kontext, das ist alles. –