Heim >Backend-Entwicklung >Python-Tutorial >Warum geben Python-Listenmutationsmethoden „Keine' zurück?
Beim Bearbeiten von Python-Listen mit Methoden wie Anhängen, Sortieren, Erweitern, Entfernen, Löschen und Umkehren stößt man auf ein merkwürdiges Verhalten : Diese Operationen ändern die Liste direkt und geben „None“ anstelle der aktualisierten Liste zurück.
Diese Designwahl wurde durch ein grundlegendes Prinzip in Python bestimmt: Funktionen, die mutieren Ein vorhandenes Objekt sollte None zurückgeben. Dies unterstreicht die Tatsache, dass bei solchen Vorgängen kein neues Objekt erstellt wird.
Guido van Rossum, der Erfinder von Python, erläutert seine Gründe ausführlich auf der Python-Dev-Mailingliste. Er plädiert gegen die prägnante Verkettung von Nebenwirkungen auf ein einzelnes Objekt, da dies das Verständnis des Lesers für die Absicht des Codes verschleiern kann. Betrachten Sie beispielsweise den folgenden Code:
x.compress().chop(y).sort(z)
Dies ist äquivalent zu:
x.compress() x.chop(y) x.sort(z)
Van Rossum behauptet, dass die zweite Form klarer ist, da sie explizit zeigt, dass jede Operation angewendet wird auf dieselbe Variable x.
Andererseits ist die Verwendung der Verkettung Operationen vorbehalten, die neue Werte zurückgeben, wie z. B. die Zeichenfolgenverarbeitung Operationen:
y = x.rstrip("\n").split(":").lower()
Obwohl bestimmte Bibliotheksmodule wie pstat die Verkettung von Nebeneffektaufrufen fördern können, behauptet Van Rossum, dass von dieser Praxis bei Neuzugängen zur Standardbibliothek abgeraten wird.
Das obige ist der detaillierte Inhalt vonWarum geben Python-Listenmutationsmethoden „Keine' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!