Verstehen der Bedeutung von (Stern/Sternchen) und * (Doppelstern/Sternchen) in Parametern
In Python-Funktionsdefinitionen ist das - und *-Operatoren bieten leistungsstarke Redewendungen für die Verarbeitung einer beliebigen Anzahl von Argumente.
Positionsargumente: *args
- Der Parameter *args ermöglicht einer Funktion, eine variable Anzahl von Positionsargumenten zu akzeptieren.
- Diese Argumente werden in einem Tupel gesammelt, auf das innerhalb von zugegriffen werden kann Funktion.
Beispiel:
def foo(x, y, *args):
pass
foo(1, 2, 3)
# args = (3,)
Nach dem Login kopieren
Schlüsselwortargumente: kwargs**
- The **Der Parameter kwargs ermöglicht einer Funktion, eine beliebige Anzahl von Schlüsselwortargumenten zu akzeptieren.
- Diese Argumente werden in einem Wörterbuch gesammelt, in dem die Schlüssel die Argumentnamen und die Werte die Argumentwerte sind.
Beispiel:
def bar(x, y, **kwargs):
pass
bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}
Nach dem Login kopieren
Mischen fester und variabler Argumente
- Sowohl args als auch *kwargs können mit normalen festen Argumenten kombiniert werden, um Flexibilität bei Funktionsdefinitionen zu bieten.
Beispiel:
def foo(kind, *args, bar=None, **kwargs):
print(kind, args, bar, kwargs)
foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}
Nach dem Login kopieren
Zusätzliche Verwendungen
- kann verwendet werden Argumentlisten beim Aufrufen einer Funktion entpacken.
- In Python 3 können und * auf der linken Seite einer Zuweisung verwendet werden, um Iterables in Variablen zu entpacken.
- Python 3.6 führt eine neue Syntax ein, die Positionsargumente danach einschränkt *.
Hinweis:
- Python verwendet Wörterbücher zur Darstellung von Schlüsselwortargumenten, die die Einfügereihenfolge in Python 3.6 beibehalten.
- kwargs-Wörterbücher behalten die Einfügereihenfolge in Python 3.7 und höher bei, auch für Nicht-CPython Implementierungen.
Das obige ist der detaillierte Inhalt vonWie gehen „*args' und „kwargs' mit variablen Argumenten in Python-Funktionen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!