Der Zweck von * und ** in Python

Najwa Riyaz 30 Januar 2023
  1. Die Definition von * in Python
  2. Die Definition von ** in Python
  3. Die Verwendung von * und ** in Funktionsaufrufen in Python
Der Zweck von * und ** 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.

  1. Positionsargumente(*)
  2. 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

Verwandter Artikel - Python Argument