Ich vergesse es oft, also mach dir eine Notiz.
Wenn "* args" als Argument angegeben wird, erhält es eine beliebige Anzahl von Argumenten und wird zu einem Taple.
>>> def func(a, b, *args):
... print('a: {}'.format(a))
... print('b: {}'.format(b))
... print('*args: {}'.format(args))
...
>>> func(1, 2, 3, 4, 5, 6)
a: 1
b: 2
*args: (3, 4, 5, 6)
Wenn Sie "** kargs" als Argument angeben, können Sie eine beliebige Anzahl von Schlüsselwortargumenten empfangen und als Wörterbuch verwenden.
>>> def func(a, b, **kargs):
... print('a: {}'.format(a))
... print('b: {}'.format(b))
... print('**kargs: {}'.format(kargs))
...
>>> func(1, 2, x=3, y=4, z=5)
a: 1
b: 2
**kargs: {'z': 5, 'x': 3, 'y': 4}
Wenn Sie der Liste "*" hinzufügen und an das Argument übergeben, wird es entpackt und dem Argument zugewiesen.
>>> args = [1, 2, 3]
>>> def func(a, b, c):
... return a + b + c
...
>>> func(*args)
6
Wenn Sie dem Wörterbuch "**" hinzufügen und es an das Argument übergeben, wird es entpackt und dem Argument zugewiesen.
>>> kargs = {'a': 3, 'b': 4, 'c': 5}
>>> def func(a, b, c):
... return a + b + c
...
>>> func(**kargs)
12
>>> args = [3, 4, 5]
>>> def func(a, b, *args):
... print('a: {}'.format(a))
... print('b: {}'.format(b))
... print('*args: {}'.format(args))
...
>>> func(1, 2, *args)
a: 1
b: 2
*args: (3, 4, 5)
Es wird entpackt, indem es mit * args
an das Argument übergeben wird, und die Funktion empfängt es als Argument variabler Länge, sodass es zu einer Liste wird.
Es ist eine Geschichte, die Sie von Anfang an als Liste geben können, aber Sie können dies auch tun.
* args ** Bedeutung von kwargs
Recommended Posts