Heim > Backend-Entwicklung > Python-Tutorial > *args und **kwargs in Python verstehen

*args und **kwargs in Python verstehen

Susan Sarandon
Freigeben: 2025-01-16 22:16:13
Original
544 Leute haben es durchsucht

Understanding *args and **kwargs in Python

Die wunderbare Verwendung von *args und **kwargs in Python: das Geheimnis flexibler Funktionen

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.


Was ist *args?

*args ermöglicht einer Funktion, eine beliebige Anzahl von Positionsargumenten zu akzeptieren. Diese Parameter werden in einem Tupel gespeichert.

Beispiel:

<code class="language-python">def print_numbers(*args):
    for number in args:
        print(number)

print_numbers(1, 2, 3, 4, 5)</code>
Nach dem Login kopieren

Ausgabe:

<code>1
2
3
4
5</code>
Nach dem Login kopieren

Hier können Sie beliebig viele Zahlen eingeben und diese werden alle gedruckt. Wenn keine Argumente übergeben werden, ist args nur ein leeres Tupel.


Was ist **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.

Beispiel:

<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>
Nach dem Login kopieren

Ausgabe:

<code>name: Alice
age: 25
city: New York</code>
Nach dem Login kopieren

Hier können beliebig viele Schlüssel-Wert-Paare übergeben werden. Wenn keine Schlüsselwortargumente übergeben werden, ist kwargs lediglich ein leeres Wörterbuch.


In Kombination verwenden *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.

Beispiel:

<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>
Nach dem Login kopieren

Ausgabe:

<code>Attributes:
- Friendly
- Helpful

Details:
name: Bob
age: 30
city: Boston</code>
Nach dem Login kopieren

Hier sammelt *args Positionsparameter (z. B. „Freundlich“ und „Hilfreich“) und **kwargs Schlüsselwortparameter (z. B. Name="Bob" und Alter=30).


Einfache Gedächtnisregeln

  1. Verwenden Sie , wenn Sie eine variable Anzahl von Positionsargumenten*args übergeben müssen.
  2. Verwenden Sie , wenn Sie eine variable Anzahl von Schlüsselwortargumenten**kwargs übergeben müssen.
  3. Die Reihenfolge in einer Funktionssignatur sollte immer sein:
    • Allgemeine Positionsparameter
    • *args
    • Standard-Keyword-Parameter
    • **kwargs

Praxisbeispiele für Einsteiger

Beispiel 1: Eine Funktion zum Addieren von Zahlen

<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>
Nach dem Login kopieren

Ausgabe:

<code>The sum is: 10
The sum is: 30</code>
Nach dem Login kopieren

Beispiel 2: Personen mit Namen begrüßen

<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>
Nach dem Login kopieren

Ausgabe:

<code>Hello, Alice!
Hi, Bob!
Hey, Charlie!</code>
Nach dem Login kopieren

Beispiel 3: Kombination von *args und **kwargs

in einer Einkaufsliste
<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>
Nach dem Login kopieren

Ausgabe:

<code>Items to buy:
- Apples
- Bananas

Prices:
Apples: 
Bananas: .5
Oranges: </code>
Nach dem Login kopieren

Fazit

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage