Rumah > pembangunan bahagian belakang > Tutorial Python > Memahami *args dan **kwargs dalam Python

Memahami *args dan **kwargs dalam Python

Susan Sarandon
Lepaskan: 2025-01-16 22:16:13
asal
547 orang telah melayarinya

Understanding *args and **kwargs in Python

Penggunaan hebat *args dan **kwargs dalam Python: rahsia fungsi fleksibel

Dalam Python, *args dan **kwargs ialah alat berkuasa untuk mencipta fungsi fleksibel yang membolehkan fungsi menerima bilangan argumen yang berubah-ubah. Ini amat berguna apabila anda tidak mengetahui terlebih dahulu berapa banyak hujah yang akan dihantar kepada fungsi tersebut.


Apakah itu *args?

*args membenarkan fungsi menerima sebarang bilangan hujah kedudukan. Parameter ini disimpan dalam tuple.

Contoh:

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

print_numbers(1, 2, 3, 4, 5)</code>
Salin selepas log masuk

Output:

<code>1
2
3
4
5</code>
Salin selepas log masuk

Di sini anda boleh lulus sebarang nombor dan semuanya akan dicetak. Jika tiada hujah diluluskan, args hanya akan menjadi tuple kosong.


Apakah itu **kwargs?

**kwargs membenarkan fungsi menerima sebarang bilangan hujah kata kunci. Parameter ini disimpan dalam kamus, di mana kuncinya ialah nama parameter dan nilainya ialah nilai yang sepadan.

Contoh:

<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>
Salin selepas log masuk

Output:

<code>name: Alice
age: 25
city: New York</code>
Salin selepas log masuk

Di sini anda boleh melepasi sebarang bilangan pasangan nilai kunci. Jika tiada hujah kata kunci diluluskan, kwargs hanya akan menjadi kamus kosong.


Gunakan dalam kombinasi *args dan **kwargs

Anda boleh menggunakan kedua-dua *args dan **kwargs dalam fungsi yang sama. Ini membolehkan anda mengendalikan kedua-dua hujah kedudukan dan kata kunci.

Contoh:

<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>
Salin selepas log masuk

Output:

<code>Attributes:
- Friendly
- Helpful

Details:
name: Bob
age: 30
city: Boston</code>
Salin selepas log masuk

Di sini, *args mengumpul parameter kedudukan (seperti "Mesra" dan "Membantu") dan **kwargs mengumpul parameter kata kunci (seperti nama="Bob" dan umur=30).


Peraturan ingatan mudah

  1. Gunakan apabila anda perlu menghantar nombor pembolehubah argumen kedudukan*args.
  2. Gunakan apabila anda perlu menghantar nombor pembolehubah argumen kata kunci**kwargs.
  3. Tertib dalam tandatangan fungsi hendaklah sentiasa:
    • Parameter kedudukan am
    • *args
    • Parameter kata kunci lalai
    • **kwargs

Contoh praktikal untuk pemula

Contoh 1: Fungsi untuk menambah nombor

<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>
Salin selepas log masuk

Output:

<code>The sum is: 10
The sum is: 30</code>
Salin selepas log masuk

Contoh 2: Sambut orang dengan nama

<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>
Salin selepas log masuk

Output:

<code>Hello, Alice!
Hi, Bob!
Hey, Charlie!</code>
Salin selepas log masuk

Contoh 3: Menggabungkan *args dan **kwargs

dalam senarai beli-belah
<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>
Salin selepas log masuk

Output:

<code>Items to buy:
- Apples
- Bananas

Prices:
Apples: 
Bananas: .5
Oranges: </code>
Salin selepas log masuk

Kesimpulan

Dengan menggunakan *args dan **kwargs anda boleh menjadikan fungsi Python anda lebih dinamik dan fleksibel. Ini amat berguna apabila bekerja dengan program yang bilangan input mungkin berbeza-beza. Cuba ciri ini bermula dengan projek kecil dan anda akan mendapati ia sangat berguna!

Atas ialah kandungan terperinci Memahami *args dan **kwargs dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan