Heim >Backend-Entwicklung >Python-Tutorial >Wie funktioniert das Sternchen (*) in Python-Funktionsdefinitionen?

Wie funktioniert das Sternchen (*) in Python-Funktionsdefinitionen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 12:47:02404Durchsuche

How does the asterisk (*) work in Python function definitions?

Das Sternchen (*) in Python-Funktionsdefinitionen verstehen

In Python hat das Sternchen (*) eine wichtige Bedeutung bei der Definition von Funktionen. Die Referenzdokumentation für Funktionsdefinitionen gibt Aufschluss über die Verwendung:

  • Excess Positional Arguments: Die Syntaxform *identifier akzeptiert alle verbleibenden Positionsparameter, die nicht in der Signatur der Funktion enthalten sind, und initialisiert sie zu einem Tupel. Standardmäßig wird ein leeres Tupel zugewiesen, wenn keine überschüssigen Positionsargumente vorhanden sind.
  • Überschüssige Schlüsselwortargumente: Die Syntaxform **identifier speichert alle zusätzlichen Schlüsselwortargumente, die nicht in der Signatur der Funktion berücksichtigt werden und ordnet sie einem neuen Wörterbuch zu. Der Standardwert ist ein leeres Wörterbuch, wenn keine überschüssigen Schlüsselwortargumente vorhanden sind.

Hier sind konkrete Beispiele zur Veranschaulichung ihrer Anwendung:

Beispiel 1: Überschüssige Schlüsselwortargumente

def foo(a, b, c, **args):
    print(f"a = {a}")
    print(f"b = {b}")
    print(f"c = {c}")
    print(args)

foo(a="testa", d="excess", c="testc", b="testb", k="another_excess")

Beispiel 2: Übermäßige Position Argumente

def foo(a, b, c, *args):
    print(f"a = {a}")
    print(f"b = {b}")
    print(f"c = {c}")
    print(args)

foo("testa", "testb", "testc", "excess", "another_excess")

Argumente entpacken

Das Sternchen kann auch zum Entpacken von Wörterbüchern oder Tupeln in Funktionsargumente verwendet werden:

Beispiel 3: Auspacken a Wörterbuch

def foo(a, b, c, **args):
    print(f"a={a}")
    print(f"b={b}")
    print(f"c={c}")
    print(f"args={args}")

argdict = {"a": "testa", "b": "testb", "c": "testc", "excessarg": "string"}
foo(**argdict)

Beispiel 4: Entpacken eines Tupels

def foo(a, b, c, *args):
    print(f"a={a}")
    print(f"b={b}")
    print(f"c={c}")
    print(f"args={args}")

argtuple = ("testa", "testb", "testc", "excess")
foo(*argtuple)

Wenn Sie die Verwendung des Sternchens in Python-Funktionsdefinitionen verstehen, können Sie überschüssige Argumente effektiv verarbeiten und Daten in Funktionsargumente entpacken.

Das obige ist der detaillierte Inhalt vonWie funktioniert das Sternchen (*) in Python-Funktionsdefinitionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn