Stellen Sie in Python beim Erstellen einer Funktion, die eine beliebige Anzahl von Argumenten akzeptiert, den Argumenten \ * oder \ * \ * voran.
Wenn Sie auf der Funktionsseite \ * hinzufügen, wird es zu Tupel, und wenn Sie \ * \ * hinzufügen, wird es im Wörterbuch empfangen. Aus Sicht des Anrufers gibt es beim Übergeben von Tuple kein Schlüsselwort, und beim Übergeben von Dictionary gibt es ein Schlüsselwort.
def func1(*param1):
print(param1)
def func2(**param1):
print(param1)
In [3]: func1(1,2,3,4,5)
(1, 2, 3, 4, 5)
In [4]: func2(a=1,b=2,c=3,d=4,e=5)
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}
Unpacking Argument Wenn Sie den Inhalt des Tupels separat übergeben möchten Die Ergebnisse von "func1 (* t1)" und "func1 (0,1,2)" sind gleich. Verwenden Sie für Dictionary **.
In [13]: t1 = (0,1,2)
In [14]: func1(*t1)
(0, 1, 2)
In [15]: func1(0,1,2)
(0, 1, 2)
In [16]: func1(t1)
((0, 1, 2),)
Details finden Sie hier [https://docs.python.org/dev/tutorial/controlflow.html#keyword-arguments].
Recommended Posts