Heim > Backend-Entwicklung > Python-Tutorial > Warum geben Pythons Listenänderungsmethoden „None' zurück?

Warum geben Pythons Listenänderungsmethoden „None' zurück?

Susan Sarandon
Freigeben: 2024-12-20 18:29:13
Original
878 Leute haben es durchsucht

Why Do Python's List Modification Methods Return `None`?

Warum geben Python-Listenmethoden None statt der Liste zurück?

Das Ändern von Listenmethoden wie Anhängen, Sortieren, Erweitern, Entfernen, Löschen und Umkehren gibt normalerweise eher None zurück als die geänderte Liste selbst. Diese Entwurfsentscheidung basiert auf dem übergeordneten Prinzip von Python, dass Funktionen, die Objekte an Ort und Stelle ändern, None zurückgeben sollten.

Die Begründung

Laut Guido van Rossum, dem Python-Architekten , dient diese Wahl dazu, zu betonen, dass kein neues Objekt erstellt wird. Dadurch, dass die geänderte Liste nicht zurückgegeben wird, wird von der Verwendung verketteter Nebenwirkungen abgeraten, wie zum Beispiel:

x.compress().chop(y).sort(z)
Nach dem Login kopieren

die verwirrend sein und die Lesbarkeit beeinträchtigen können. Stattdessen bevorzugt Python die explizitere Form:

x.compress()
x.chop(y)
x.sort(z)
Nach dem Login kopieren

Diese Trennung macht deutlich, dass jede Methode auf dasselbe Objekt wirkt.

Verkettungsoperationen

Während der Verkettungsseite Von -effect-Aufrufen wird abgeraten. Python lässt sie für Vorgänge zu, die neue Werte zurückgeben, wie etwa die String-Verarbeitung Operationen:

y = x.rstrip("\n").split(":").lower()
Nach dem Login kopieren

Überlegungen

Diese Entwurfsentscheidung hat Nachteile. Es verhindert eine intuitive „Verkettung“ der Listenverarbeitung, wie zum Beispiel:

mylist.reverse().append('a string')[:someLimit]
Nach dem Login kopieren

Alternativen wie Listenverständnis und andere Datenstrukturen können ähnliche Funktionen bereitstellen, ohne die Konvention „keine Nebenwirkungen zurückgeben“ zu verletzen.

Das obige ist der detaillierte Inhalt vonWarum geben Pythons Listenänderungsmethoden „None' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage