Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt „list.append()' in einem booleschen Kontext „False' zurück?

Warum gibt „list.append()' in einem booleschen Kontext „False' zurück?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 08:57:09161Durchsuche

Why Does `list.append()` Return `False` in a Boolean Context?

Warum gibt list.append in einem booleschen Kontext „False“ zurück?

Beim Umgang mit booleschen Ausdrücken stößt man nicht selten auf Code wie diesen:

u = []
if not u.append(6):
    # Do something...

Aber warum wird list.append in einem booleschen Kontext als False ausgewertet? Liegt es an einer bewussten Entwurfsentscheidung oder einfach an den C-Konventionen?

Die Erklärung

Die meisten Python-Methoden, die einen Container an Ort und Stelle ändern, geben „None“ zurück und halten sich an das Befehlsprinzip. Abfragetrennung. Nach diesem Prinzip sollten Methoden, die Daten ändern, keinen Wert zurückgeben, da ihr Hauptzweck darin besteht, den Zustand des Objekts zu ändern. Dieser Ansatz trägt dazu bei, eine klare Unterscheidung zwischen Vorgängen, die Daten abrufen, und solchen, die Daten ändern, aufrechtzuerhalten.

Im Fall von list.append wird ein Element an das Ende der Liste angehängt und dabei verändert. Daher folgt es der Konvention, None zurückzugeben, um anzuzeigen, dass ein Element erfolgreich zur Liste hinzugefügt wurde. In einem booleschen Kontext wird None jedoch als False betrachtet, daher das unerwartete Ergebnis des oben genannten Codeausschnitts.

Das obige ist der detaillierte Inhalt vonWarum gibt „list.append()' in einem booleschen Kontext „False' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn