Dans les fonctions Python, on voit souvent un ou deux astérisques avant les paramètres d'entrée, par exemple :
def foo(param1, *param2):
def bar(param1, **param2):
Ces deux utilisations servent en fait toutes les deux à passer un nombre quelconque de paramètres à une fonction Python.

Astérisque simple (*) : *agrs

Importe tous les paramètres sous la forme d'un tuple :

Exemple

def foo(param1, *param2):
    print (param1)
    print (param2)
foo(1,2,3,4,5)

La sortie du code ci-dessus est :

1
(2, 3, 4, 5)

Astérisques doubles (**) : **kwargs

Les astérisques doubles (**) importent les paramètres sous la forme d'un dictionnaire :

Exemple

def bar(param1, **param2):
    print (param1)
    print (param2)
bar(1,a=2,b=3)

La sortie du code ci-dessus est :

1
{'a': 2, 'b': 3}

De plus, une autre utilisation d'un seul astérisque consiste à déballer une liste d'arguments :

Exemple

def foo(example_1, example_2):
    print(example_1, example_2)
l = [1, 2]
foo(*l)

La sortie du code ci-dessus est :

1 2
Bien sûr, ces deux utilisations peuvent apparaître dans une fonction en même temps :

Exemple

def foo(a, b=10, *args, **kwargs):
    print (a)
    print (b)
    print (args)
    print (kwargs)
foo(1, 2, 3, 4, e=5, f=6, g=7)

La sortie du code ci-dessus est :

1
2
(3, 4)
{'e': 5, 'f': 6, 'g': 7}

URL d'origine : https://www.cnblogs.com/arkenstone/p/5695161.html