Die Verwendung von * und ** in Python


Vorwort

In Python sollte bei der Verwendung von *AND **unterschieden werden, unabhängig davon, ob die Funktion definiert oder aufgerufen wird.


1. *Bei **der Definition der Funktion

def deng(*args,**kwargs):
    print(args)
    print(kwargs)

deng(1,2,3,a = 4,b = 5)

Wenn es beim Definieren einer Funktion vor den Parametern verwendet wird *, bedeutet dies, dass die Nicht-Schlüsselwortparameter beim Aufruf der Funktion gesammelt und in einem Tupel args gespeichert werden.
Wird beim Definieren einer Funktion vor den Parametern verwendet **, bedeutet dies, dass die Schlüsselwortparameter beim Aufruf der Funktion gesammelt und in einem Wörterbuch von kwargs gespeichert werden.

Fügen Sie hier eine Bildbeschreibung ein

2. *Beim **Aufruf der Funktion

Wird beim Aufrufen einer Funktion vor dem Parameter verwendet *. Dies bedeutet, dass der Parameter entpackt wird (die Elemente in der Sequenz entsprechend den Positionsparametern an die Funktion übergeben werden).

def deng(a,b,c,d):
    print(a)
    print(b)
    print(c)
    print(d)
list_a = [1,2,3,4]
deng(*list_a)

Fügen Sie hier eine Bildbeschreibung ein

Wird beim Aufrufen einer Funktion vor dem Parameter verwendet **. Dies bedeutet, dass der Parameter entpackt wird (die Elemente im Wörterbuch werden als Schlüsselwortparameter an die Funktion übergeben).

def deng(a,b,c,d):
    print(a)
    print(b)
    print(c)
    print(d)
dict_a = {
    
    'a' : 1,'b' : 3,'c' : 4,'d' : 2 }
deng(**dict_a)

Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/weixin_47250738/article/details/132110644
Empfohlen
Rangfolge