Der Zweck von * und ** in Python
-
Die Definition von
*
in Python -
Die Definition von
**
in Python -
Die Verwendung von
*
und**
in Funktionsaufrufen in Python
Dieser Artikel erklärt den Zweck von *
und **
in Python.
In Python verwenden wir den einfachen Stern (*
) und den doppelten Stern (**
), um eine variable Anzahl von Argumenten zu bezeichnen.
Wir können eine beliebige Anzahl von Argumenten in einer Python-Funktion auf eine der folgenden Arten übergeben.
- Positionsargumente(
*
) - Keyword-Argumente (
**
)
Die Definition von *
in Python
Verwenden Sie das Symbol *
in Python, um eine variable Anzahl von Positionsargumenten/Parametern für die Funktion zuzulassen.
Folgen Sie dem Beispiel unten.
def function_singleasterix(*someargs):
for i in someargs:
print(i)
Der Treibercode, entweder mit list
oder tuple
, lautet nun wie folgt.
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
Ausgabe:
['Alex', 'Tom', 'John', 'Alice']
Verwenden Sie ausschließlich Positionsargumente, wenn Sie nicht möchten, dass die Benutzer den Namen der Parameter kennen.
Es ist beispielsweise ratsam, in APIs reine Positionsvariablen zu verwenden – dies verhindert einen Bruch bei Änderungen in der API, wenn der Name des Parameters geändert wird.
Die Definition von **
in Python
Verwenden Sie das Symbol **
in Python, um eine variable Anzahl von Schlüsselwortargumenten/Parametern für die Funktion zuzulassen. Beachten Sie, dass das Argument danach ein Zuordnungselement (Dictionary-Schlüssel-Wert-Paar) sein muss, kein Tupel oder eine Liste.
Folgen Sie dem folgenden Beispielcode.
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
Im obigen Beispiel ist keywordargs
einem dictionary
zugeordnet, wie im Programm unten.
function_doubleasterix(SNo001="Alex", SNo002="Tom")
Ausgabe:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
Im obigen Beispiel stellt **keywordargs
Schlüsselwortargumente als dictionary
-Schlüssel-Wert-Paare bereit.
Die Verwendung von *
und **
in Funktionsaufrufen in Python
Die Symbole *
und **
werden auch in Funktionsaufrufen verwendet. Verwenden Sie sie, um eine variable Anzahl von Argumenten an eine Funktion zu übergeben, die eine der folgenden Methoden verwendet.
- eine Liste -
*
- ein Tupel -
*
- ein Dictionary -
**
Hier sind einige Beispiele, denen Sie folgen können.
Rufen Sie die Funktion mit einer Variablen list
als Eingabe auf. Verwenden Sie *
wie folgt
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
Rufen Sie die Funktion mit einer Variablen dictionary
als Eingabe auf. Verwenden Sie **
wie folgt
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
Rufen Sie die Funktion mit einer Variablen tupel
als Eingabe auf. Verwenden Sie *
wie folgt
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
Die Ausgabe für alle oben genannten Fälle ist:
SNo1 = Tom
SNo2 = John
SNo3 = Alice