Heim > Artikel > Backend-Entwicklung > Optimieren Sie Ihren Code mit dem Walrus-Operator von Python: Beispiele aus der Praxis und zu vermeidende Anti-Patterns
Einführung:
Der in Python 3.8 eingeführte Walross-Operator ist ein nützliches Werkzeug für Entwickler, um ihren Code zu vereinfachen und zu optimieren. Es ermöglicht die Zuweisung von Variablen innerhalb von Ausdrücken und sorgt so für einen präziseren und effizienteren Programmieransatz. Allerdings sollte es, wie jedes andere Werkzeug auch, in Maßen und mit gutem Urteilsvermögen verwendet werden. In diesem Tutorial werden wir reale Beispiele für die Verwendung von Walross-Operatoren untersuchen und einige Anti-Patterns hervorheben, die es zu vermeiden gilt.
Reale Beispiele für die Verwendung von Walross-Operatoren:
1. Vereinfachung bedingter Anweisungen
Einer der häufigsten Anwendungsfälle für den Walross-Operator ist die Vereinfachung von bedingten Anweisungen. Nehmen wir an, wir haben eine Funktion, die die Länge einer Zeichenfolge zurückgibt, und wir möchten prüfen, ob die Länge größer als 10 ist. Mit dem Walross-Operator können wir die variable Länge direkt in der bedingten Anweisung zuweisen und uns so eine Codezeile sparen.
Beispiel einer bedingten Anweisung ohne Walross-Operator
Länge = len(string)
wenn Länge > 10:
print("String ist länger als 10 Zeichen.")
Beispiel für die Verwendung des Walross-Operators
if (length := len(string)) > 10:
print("String ist länger als 10 Zeichen.")
2. Wiederholte Funktionsaufrufe vermeiden
In einigen Fällen kann die Verwendung des Walross-Operators die Leistung unseres Codes verbessern, indem wiederholte Funktionsaufrufe vermieden werden. Im folgenden Beispiel möchten wir die Durchschnittsnote eines Schülers berechnen, müssen aber auch prüfen, ob der Schüler den Kurs bestanden hat. Ohne den Walross-Operator müssten wir die Funktion zweimal aufrufen, aber damit können wir das Ergebnis der Funktion einer Variablen zuweisen und es sowohl in der bedingten Anweisung als auch in der Berechnung verwenden.
Beispiel ohne Walross-Operator
note1 = compute_grade(student, test1)
grade2 = compute_grade(student, test2)
if (note1 + grade2) / 2 >= 70:
print("Der Schüler hat den Kurs bestanden.")
if ((note1 := berechnete_note(student, test1)) + (note2 := berechnete_note(student, test2))) / 2 >= 70:
print("Der Schüler hat den Kurs bestanden.")
3. Vereinfachtes Listenverständnis
Listenverständnisse sind ein leistungsstarkes Werkzeug zum Bearbeiten und Filtern von Daten in einer Liste. Allerdings kann es schwierig werden, komplexe Listenverständnisse zu lesen und beizubehalten. Die Verwendung des Walross-Operators kann dieses Verständnis vereinfachen, indem er es uns ermöglicht, Variablen innerhalb des Ausdrucks zuzuweisen.
Beispiel für Listenverständnis ohne Walross-Operator
results = [compute_profit(sales, cost) for sales, cost in sales_data if compute_profit(sales, cost) > 50]
Beispiel für die Verwendung des Walross-Operators
Ergebnisse = [(Gewinn := berechne_Gewinn(Umsatz, Kosten)) für Umsätze, Kosten in Umsatzdaten, wenn Gewinn > 50]
Anti-Patterns: Wie man den Walross-Operator nicht verwendet:
1. Komplexe Listenverständnisse
Während der Walross-Operator das Listenverständnis vereinfachen kann, kann seine übermäßige Verwendung zu komplexem und unlesbarem Code führen. In diesem Anti-Pattern sehen wir ein Listenverständnis mit mehreren verschachtelten Bedingungen und Zuweisungen. Dies kann schwierig zu lesen und zu pflegen sein, und es ist besser, die Logik in separate Schritte zu unterteilen.
Beispiel für unordentliches Listenverständnis mit verschachteltem Walross-Operator
sales_data = [(100, 70), (200, 150), (150, 100), (300, 200)]
results = [(Umsatz, Kosten, Gewinn, Umsatzverhältnis) für Umsatz, Kosten in Umsatzdaten, wenn (Gewinn := berechne_Gewinn(Umsatz, Kosten)) > 50
if (sales_ratio := sales / cost) > 1,5 if (profit_margin := (profit / sales)) > 0,2]
2. Verschachtelte Walross-Operatoren
Die Verwendung verschachtelter Walross-Operatoren kann zu Code führen, der schwer zu lesen und zu verstehen ist. In diesem Beispiel sehen wir verschachtelte Operatoren innerhalb eines einzelnen Ausdrucks, was es schwierig macht, die Logik zu entpacken und den Code zu verstehen. Für eine bessere Lesbarkeit und Wartbarkeit ist es besser, die Logik in mehrere Zeilen zu unterteilen.
Beispiel für verschachtelte Walross-Operatoren
Werte = [5, 15, 25, 35, 45]
Schwelle = 20
Ergebnisse = []
für Wert in Werten:
if (above_threshold := Wert > Schwellenwert) und (erhöht := (new_value := Wert + 10) > 30):
results.append(new_value)
print(results)
Conclusion :
L'opérateur Walrus est un outil puissant pour simplifier et optimiser le code, mais il doit être utilisé avec prudence. En comprenant ses capacités et ses limites, nous pouvons l'utiliser efficacement dans notre code et éviter les anti-modèles courants.
Les tests pratiques de certification Python de MyExamCloud sont un outil utile pour ceux qui se préparent à toute certification Python.
Das obige ist der detaillierte Inhalt vonOptimieren Sie Ihren Code mit dem Walrus-Operator von Python: Beispiele aus der Praxis und zu vermeidende Anti-Patterns. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!