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 zu vermeidende Anti-Patterns hervorheben.
Reale Beispiele für die Verwendung von Walross-Operatoren:
1. Bedingte Anweisungen vereinfachen
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
length = 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
grade1 = compute_grade(student, test1)
grade2 = compute_grade(student, test2)
if (note1 grade2) / 2 >= 70:
print("Der Schüler hat den Kurs bestanden.")
if ((grade1 := compute_grade(student, test1)) (grade2 := compute_grade(student, test2))) / 2 >= 70:
print("Der Schüler hat den Kurs bestanden.")
3. Listenverständnis vereinfachen
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 Verkäufe, 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 warten sein, und es ist besser, die Logik in separate Schritte zu unterteilen.
Beispiel für chaotisches Listenverständnis mit verschachteltem Walross-Operator
sales_data = [(100, 70), (200, 150), (150, 100), (300, 200)]
Ergebnisse = [(Umsatz, Kosten, Gewinn, Umsatzverhältnis) für Umsatz, Kosten in Umsatzdaten, wenn (Gewinn := berechneter_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. Zur besseren 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]
Schwellenwert = 20
Ergebnisse = []
für Wert in Werten:
if (above_threshold := Wert > Schwellenwert) und (erhöht := (new_value := Wert 10) > 30):
results.append(new_value)
drucken(Ergebnisse)
Abschluss:
Der Walross-Operator ist ein leistungsstarkes Tool zur Vereinfachung und Optimierung von Code, sollte jedoch mit Vorsicht verwendet werden. Indem wir seine Fähigkeiten und Einschränkungen verstehen, können wir es effektiv in unserem Code nutzen und gängige Anti-Patterns vermeiden.
Die Python-Zertifizierungspraxistests von MyExamCloud sind ein nützliches Werkzeug für diejenigen, die sich auf Python-Zertifizierungen vorbereiten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3