Heim  >  Artikel  >  Backend-Entwicklung  >  Meistere den Python-Walross-Operator und schalte neue Programmierkenntnisse frei!

Meistere den Python-Walross-Operator und schalte neue Programmierkenntnisse frei!

王林
王林nach vorne
2023-04-25 17:55:081020Durchsuche

Hallo zusammen, ich bin Xianhuan, ein alter Bekannter von euch!

Das Walross ist das größte Säugetier und manche nennen es einen „einheimischen“ Bewohner der nördlichen Hemisphäre. Es hat einen runden Kopf, ein kurzes und breites Maul, eine dicke Nase und die oberen Eckzähne bilden Stoßzähne, die 40 bis 90 cm lang sind und jeweils mehr als 4 kg wiegen. Männliche Walrosse können eine Länge von 4 Metern und ein Gewicht von 2 Tonnen erreichen. Walrosse leben gerne in Gruppen, zu Tausenden zusammengedrängt.

Die Augen von Walrossen sind zusammengekniffen wie bei einem alten Mann, dem es an Vitalität mangelt. Sie lieben es, auszuschlafen und verbringen die meiste Zeit ihres Lebens auf dem Eis. Sie können auch im Wasser schlafen, was wirklich erstaunlich ist.

Als Rollerfarmer von 996 beneide ich sie sehr um ihr Leben und möchte unbedingt so flach schlafen wie sie.

Okay, kommen wir zur Sache, lasst uns weiter rollen! Heute präsentiere ich Ihnen einen Operator, der nach einem Walross benannt ist – den Walross-Operator.

Der Python-Walross-Operator wurde in PEP 572 vorgeschlagen und in Python 3.8 integriert und veröffentlicht.

Der ursprüngliche englische Name des Walross-Operators lautet Assignment Expressions, also Zuweisungsausdrücke. Ein Walross-Ausdruck besteht aus einem : und einem =, nämlich := . Wir nennen es normalerweise Walross-Operator, weil es wie ein um 90° gedrehtes Walross aussieht. Der Autor ist sehr einfallsreich und kann all das verbinden!

Grammatik

Das Syntaxformat des Walross-Operators ist:

(variable_name := expression)

Dies ist ein neuer Zuweisungsoperator, ähnlich unserem gemeinsamen =, einem Variablennamen folgt ein Ausdruck.

Verwendung

für if-else-Bedingungsausdrücke

Normale Schreibweise:

a = 5
if a > 1:
print('do sth!')

Verbesserte Schreibweise:

if a := 5 > 1:
print('do sth!')

Wird für While-Schleife verwendet

Normale Schreibweise:

n = 3
while n:
print('do sth!')
n -= 1

Verbesserte Schreibweise:

n = 3
while (n := n - 1) + 1: 
print('do sth!')

Der Grund für das Hinzufügen von 1 hier ist weil n vor der Ausführung der Ausgabe um 1 dekrementiert wird.

Dateien lesen

Normales Schreiben:

fp = open("test.txt", "r")
while True:
line = fp.readline()
if not line:
break
print(line.strip())
fp.close()

Verbessertes Schreiben:

fp = open("test.txt", "r")
while line := fp.readline():
print(line.strip())

Die Verwendung des Walross-Operators in geeigneten Szenarien kann die Programmkomplexität reduzieren, den Code vereinfachen und sogar die Programmleistung verbessern.

Nicht anwendbare Szenarien

Obwohl der Walross-Operator einfach zu verwenden ist, ist er nicht in allen Szenarios anwendbar und weist dennoch seine Einschränkungen auf.

Variablenzuweisung

Wir können den =-Operator und den :=-Operator nicht zusammen verwenden. Der Walross-Operator kann nur Teil des Ausdrucks sein:

a = 5 # Valid 
a := 5 # InValid 
empty_list = [] # Valid 
empty_list := [] # InValid

Wenn Sie so schreiben, wird der Editor direkt einen Fehler auslösen.

Addition und Subtraktion

a += 5 # Valid
a :+=5 # Invalid

Zuweisungsausdrücke in Lambda-Funktionen

(lambda: a:= 5) # Invalid
lambda: (a := 5) # Valid, but not useful
(var := lambda: 5) # Valid

Kontroverse

Schlüsselwörter

Der Walross-Operator verwendet := Dieses Schlüsselwort wird von den meisten Entwicklern nicht gemocht. Dieses Schlüsselwort ähnelt dem, mit dem wir normalerweise in Kontakt kommen anders, und der Schöpfer hat einen einzigartigen Ansatz.

Das gefällt mir nicht besonders, aber ich respektiere die Regeln des Erstellers. Schließlich haben sie Ihnen so praktische Operatoren gebracht.

Operatorname

Einige Entwickler denken, dass der Name „Walross-Operator“ zu abstrakt ist und die Bedeutung dieses Operators nicht klar ausdrücken kann, wenn sie diesen Namen zum ersten Mal sehen .

Bruder Huan meinte, dass es für den Autor verständlich sei, einen aussagekräftigen Namen zu wählen, da es keine festgelegte Benennungsmethode gibt.

Zusammenfassung

Von nun an haben wir eine weitere konventionelle Waffe in unserem Arsenal. Vergessen Sie nicht, sie beim Kämpfen (bei Einbeziehung anderer) zu verwenden. Dies wird die Leistung des Programms und die Einfachheit des Codes verbessern.

Das obige ist der detaillierte Inhalt vonMeistere den Python-Walross-Operator und schalte neue Programmierkenntnisse frei!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen