Warum Pythons Mutating-List-Methoden „Keine“ zurückgeben
In Python Operationen, die Listen ändern, z. B. Anhängen, Sortieren, Erweitern, Entfernen, Löschen und umgekehrt, geben überraschenderweise None anstelle der aktualisierten Liste zurück. Diese Designentscheidung hat Neugier und Debatten geweckt.
Guido van Rossum, Pythons Benevolent Dictator for Life (BDFL), erklärt, dass dieses Prinzip auf Überlegungen zum Codierungsstil zurückzuführen ist. Einige Sprachen bevorzugen die Verkettung mehrerer Nebenwirkungen auf ein einzelnes Objekt, wie in x.compress().chop(y).sort(z).
Van Rossum glaubt, dass diese Verkettung die Lesbarkeit für Leser beeinträchtigen kann, die mit den Methoden nicht vertraut sind beteiligt. Er bevorzugt einen expliziteren Stil, bei dem Nebenwirkungen getrennt und direkt auf das Objekt angewendet werden:
x.compress() x.chop(y) x.sort(z)
Dieser Ansatz macht deutlich, welches Objekt geändert wird, was das Verständnis fördert.
Van Rossum behält sich vor Verkettung für Vorgänge, die neue Werte zurückgeben, wie z. B. Zeichenfolgenverarbeitungsvorgänge, bei denen das Ergebnis eine transformierte Zeichenfolge ist, wie in:
y = x.rstrip("\n").split(":").lower()
Diese Entwurfsentscheidung wurde bewusst umgesetzt, um davon abzuschrecken Verkettung von Nebeneffektaufrufen und Betonung der Unterscheidung zwischen direkten Änderungen und Vorgängen, die neue Objekte zurückgeben. Auch wenn dies manchmal unbequem erscheinen mag, fördert es doch die Klarheit und Konsistenz des Python-Codierungsstils.
Das obige ist der detaillierte Inhalt vonWarum geben Pythons List-Mutating-Methoden „None' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!