Heim > Artikel > Backend-Entwicklung > 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 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!