Heim >Backend-Entwicklung >Python-Tutorial >*args und **kwargs in Python verstehen
In Python sind *args
und **kwargs
leistungsstarke Werkzeuge zum Erstellen flexibler Funktionen, die es Funktionen ermöglichen, eine variable Anzahl von Argumenten zu akzeptieren. Dies ist besonders nützlich, wenn Sie nicht im Voraus wissen, wie viele Argumente an die Funktion übergeben werden.
*args
? *args
ermöglicht einer Funktion, eine beliebige Anzahl von Positionsargumenten zu akzeptieren. Diese Parameter werden in einem Tupel gespeichert.
<code class="language-python">def print_numbers(*args): for number in args: print(number) print_numbers(1, 2, 3, 4, 5)</code>
Ausgabe:
<code>1 2 3 4 5</code>
Hier können Sie beliebig viele Zahlen eingeben und diese werden alle gedruckt. Wenn keine Argumente übergeben werden, ist args
nur ein leeres Tupel.
**kwargs
? **kwargs
ermöglicht einer Funktion, eine beliebige Anzahl von Schlüsselwortargumenten zu akzeptieren. Diese Parameter werden in einem Wörterbuch gespeichert, wobei die Schlüssel die Parameternamen und die Werte die entsprechenden Werte sind.
<code class="language-python">def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="Alice", age=25, city="New York")</code>
Ausgabe:
<code>name: Alice age: 25 city: New York</code>
Hier können beliebig viele Schlüssel-Wert-Paare übergeben werden. Wenn keine Schlüsselwortargumente übergeben werden, ist kwargs
lediglich ein leeres Wörterbuch.
*args
und **kwargs
Sie können sowohl *args
als auch **kwargs
in derselben Funktion verwenden. Dadurch können Sie sowohl Positions- als auch Schlüsselwortargumente verarbeiten.
<code class="language-python">def describe_person(*args, **kwargs): print("Attributes:") for arg in args: print(f"- {arg}") print("\nDetails:") for key, value in kwargs.items(): print(f"{key}: {value}") describe_person("Friendly", "Helpful", name="Bob", age=30, city="Boston")</code>
Ausgabe:
<code>Attributes: - Friendly - Helpful Details: name: Bob age: 30 city: Boston</code>
Hier sammelt *args
Positionsparameter (z. B. „Freundlich“ und „Hilfreich“) und **kwargs
Schlüsselwortparameter (z. B. Name="Bob" und Alter=30).
*args
übergeben müssen. **kwargs
übergeben müssen. *args
**kwargs
<code class="language-python">def add_numbers(*args): total = sum(args) print(f"The sum is: {total}") add_numbers(1, 2, 3, 4) add_numbers(10, 20)</code>
Ausgabe:
<code>The sum is: 10 The sum is: 30</code>
<code class="language-python">def greet_people(**kwargs): for name, greeting in kwargs.items(): print(f"{greeting}, {name}!") greet_people(Alice="Hello", Bob="Hi", Charlie="Hey")</code>
Ausgabe:
<code>Hello, Alice! Hi, Bob! Hey, Charlie!</code>
*args
und **kwargs
<code class="language-python">def shopping_list(*items, **prices): print("Items to buy:") for item in items: print(f"- {item}") print("\nPrices:") for item, price in prices.items(): print(f"{item}: ${price}") shopping_list("Apples", "Bananas", Apples=2, Bananas=1.5, Oranges=3)</code>
Ausgabe:
<code>Items to buy: - Apples - Bananas Prices: Apples: Bananas: .5 Oranges: </code>
Durch die Verwendung von *args
und **kwargs
können Sie Ihre Python-Funktionen dynamischer und flexibler gestalten. Dies ist besonders nützlich, wenn Sie mit Programmen arbeiten, bei denen die Anzahl der Eingaben variieren kann. Probieren Sie diese Funktionen aus, beginnend mit kleinen Projekten, und Sie werden sie sehr praktisch finden!
Das obige ist der detaillierte Inhalt von*args und **kwargs in Python verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!