Heim >Backend-Entwicklung >Python-Tutorial >Warum geben Python-Listenmutationsmethoden „Keine' zurück?

Warum geben Python-Listenmutationsmethoden „Keine' zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 12:49:12703Durchsuche

Why Do Python List Mutation Methods Return `None`?

Warum Listenmutationen in Python „Keine“ zurückgeben

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!

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