Heim >Backend-Entwicklung >Python-Tutorial >Wie gehen „*args' und „kwargs' mit variablen Argumenten in Python-Funktionen um?

Wie gehen „*args' und „kwargs' mit variablen Argumenten in Python-Funktionen um?

DDD
DDDOriginal
2024-12-23 02:21:13497Durchsuche

How Do `*args` and `kwargs` Handle Variable Arguments in Python Functions?

Verstehen der Bedeutung von (Stern/Sternchen) und * (Doppelstern/Sternchen) in Parametern

In Python-Funktionsdefinitionen ist das - und *-Operatoren bieten leistungsstarke Redewendungen für die Verarbeitung einer beliebigen Anzahl von Argumente.

Positionsargumente: *args

  • Der Parameter *args ermöglicht einer Funktion, eine variable Anzahl von Positionsargumenten zu akzeptieren.
  • Diese Argumente werden in einem Tupel gesammelt, auf das innerhalb von zugegriffen werden kann Funktion.

Beispiel:

def foo(x, y, *args):
    pass

foo(1, 2, 3)
# args = (3,)

Schlüsselwortargumente: kwargs**

  • The **Der Parameter kwargs ermöglicht einer Funktion, eine beliebige Anzahl von Schlüsselwortargumenten zu akzeptieren.
  • Diese Argumente werden in einem Wörterbuch gesammelt, in dem die Schlüssel die Argumentnamen und die Werte die Argumentwerte sind.

Beispiel:

def bar(x, y, **kwargs):
    pass

bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}

Mischen fester und variabler Argumente

  • Sowohl args als auch *kwargs können mit normalen festen Argumenten kombiniert werden, um Flexibilität bei Funktionsdefinitionen zu bieten.

Beispiel:

def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}

Zusätzliche Verwendungen

    • kann verwendet werden Argumentlisten beim Aufrufen einer Funktion entpacken.
  • In Python 3 können und * auf der linken Seite einer Zuweisung verwendet werden, um Iterables in Variablen zu entpacken.
  • Python 3.6 führt eine neue Syntax ein, die Positionsargumente danach einschränkt *.

Hinweis:

  • Python verwendet Wörterbücher zur Darstellung von Schlüsselwortargumenten, die die Einfügereihenfolge in Python 3.6 beibehalten.
  • kwargs-Wörterbücher behalten die Einfügereihenfolge in Python 3.7 und höher bei, auch für Nicht-CPython Implementierungen.

Das obige ist der detaillierte Inhalt vonWie gehen „*args' und „kwargs' mit variablen Argumenten in Python-Funktionen um?. 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