In Python gibt der Parameter „**“ an, dass hier eine beliebige Anzahl von Schlüsselwortparametern akzeptiert wird. Diese Parameter werden in Form eines Wörterbuchs gespeichert, das als „*“-Parameter interpretiert wird Gibt an, dass hier eine beliebige Anzahl von Schlüsselwortparametern akzeptiert wird. Diese Parameter werden in Form eines Arrays gespeichert, dh sie werden als Tupel interpretiert.
Der Parameterübergabemechanismus von Python umfasst die Wertübergabe (int, float und andere Wertdatentypen) und die Referenzübergabe (Nichtwertobjektdatentypen wie Wörterbücher und Listen). ). Stellt zwei grundlegende Mechanismen und die praktische Schlüsselwortübertragungsfunktion dar (verwenden Sie direkt den formalen Parameternamen der Funktion, um das Übertragungsziel der tatsächlichen Parameter anzugeben. Die Funktion ist beispielsweise als def f(a,b,c) definiert. , dann f( kann beim Aufruf von b = 1, c = 2, a = 3 verwendet werden) gibt die Übertragungsmethode des formalen Parameterziels an, ohne sich an die Positionskorrespondenz zwischen formalen Parametern und tatsächlichen Parametern wie der C-Sprache halten zu müssen.) Darüber hinaus ermöglicht Python auch die Parameterübergabe von Wrapping-Methoden, die die Grundlage für Funktionsaufrufe mit ungewisser Anzahl und Art von Parametern bilden.
Zum Beispiel: def f(*a,**b), die Implementierung der umschlossenen Parameterübertragung besteht darin, beim Definieren der Funktion * oder ** vor dem formalen Parameter hinzuzufügen und den entsprechenden formalen Parameter zu verwenden * (wie oben a) wird als Tupel interpretiert, und der formale Parameter, der ** (wie oben b) entspricht, wird als Wörterbuch interpretiert. Informationen zur spezifischen Parameterübertragung während des Aufrufs finden Sie im folgenden Code:
Das Ergebnis der Ausführung des obigen Codes ist:
(3, 4)
{'n': 2, 'm': 1 }
Sichtbar, denn nicht mit Schlüsselwörtern übergebene Variablen werden als Teil des Tupels an *a übergeben, während mit Schlüsselwörtern übergebene Variablen als Teil des Wörterbuchs an **b übergeben werden
Eine knifflige Stelle. Python schreibt vor, dass von Nicht-Schlüsselwörtern übergebene Variablen vor den von Schlüsselwörtern übergebenen Variablen geschrieben werden müssen. Wenn Sie also * und ** zusammen verwenden, muss der formale Parameter * vor dem formalen Parameter ** stehen
Darüber hinaus gibt es beim Aufruf der Funktion eine Methode namens Unwrapping:Das obige ist der detaillierte Inhalt vonWozu dienen die Parameter ** und * in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!