Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `*args` dan `kwargs` Meningkatkan Fleksibiliti dalam Argumen Fungsi Python?

Bagaimanakah `*args` dan `kwargs` Meningkatkan Fleksibiliti dalam Argumen Fungsi Python?

Linda Hamilton
Lepaskan: 2024-12-19 15:10:11
asal
961 orang telah melayarinya

How Do `*args` and `kwargs` Enhance Flexibility in Python Function Arguments?

Merungkai Penggunaan args dan *kwargs dalam Python

Walaupun memahami definisi asas args dan *kwargs , anda tidak pasti tentang aplikasi praktikal mereka. Mari kita mendalami konsep ini dengan lebih mendalam dan tunjukkan cara ia boleh memudahkan tugas pengekodan anda.

Kepentingan *args

*args bermaksud hujah berpanjangan berubah-ubah. Ia membolehkan anda menghantar nombor pemboleh ubah argumen ke fungsi sebagai senarai. Ini menjadi berguna apabila anda tidak mengetahui terlebih dahulu berapa banyak hujah yang akan diluluskan.

Pertimbangkan contoh berikut:

def print_args(*args):
    for count, thing in enumerate(args):
        print("{0}. {1}".format(count, thing))
Salin selepas log masuk

Sekarang, apabila anda memanggil fungsi ini, anda boleh lulus mana-mana bilangan hujah:

print_args("apple", "banana", "cabbage")  # Prints each argument on a new line
Salin selepas log masuk

Menggunakan **kwargs untuk Fleksibiliti

**kwargs bermaksud kata kunci hujah. Ia membolehkan anda menghantar kamus ke fungsi, di mana kunci menjadi nama argumen, dan nilai menjadi nilai argumen. Ini amat berguna apabila anda perlu mengendalikan hujah bernama yang anda mungkin tidak tahu lebih awal.

Sebagai contoh, mari kita ubah suai contoh kita:

def table_kwargs(**kwargs):
    for name, value in kwargs.items():
        print("{0} = {1}".format(name, value))
Salin selepas log masuk

Sekarang, apabila kita memanggil fungsi ini, kita boleh menentukan hujah berdasarkan nama mereka:

table_kwargs(apple="fruit", cabbage="vegetable")  # Prints "apple = fruit", "cabbage = vegetable"
Salin selepas log masuk

Menggabungkan args dan *kwargs

Anda juga boleh menggabungkan args dan kwargs dalam definisi fungsi untuk mengendalikan gabungan hujah kedudukan dan nama. Walau bagaimanapun, adalah penting untuk diingat bahawa args mesti didahulukan sebelum kwargs dalam tandatangan fungsi.

Sebagai contoh:

def table_args_kwargs(title, **kwargs):
    print(title)
    for name, value in kwargs.items():
        print("{0} = {1}".format(name, value))
Salin selepas log masuk

Anda kini boleh memanggil fungsi ini dengan kedua-dua kedudukan dan dinamakan hujah:

table_args_kwargs("Table of Stuff", apple="fruit", cabbage="vegetable")
Salin selepas log masuk

Menggunakan args dan *kwargs dalam Panggilan Fungsi

Selain menggunakan args dan *kwargs dalam definisi fungsi, anda juga boleh menggunakannya semasa memanggil fungsi. Ini membolehkan anda membongkar jujukan (senarai atau tupel) sebagai argumen atau lulus kamus sebagai argumen bernama.

Contohnya:

def print_three_things(a, b, c):
    print("a = {0}, b = {1}, c = {2}".format(a, b, c))

mylist = ["aardvark", "baboon", "cat"]
print_three_things(*mylist)  # Unpacks the list into individual arguments
Salin selepas log masuk

Kesimpulan

args dan *kwargs menyediakan alatan berkuasa untuk mengendalikan hujah fleksibel dalam fungsi Python. Mereka membenarkan anda menerima nombor pemboleh ubah argumen, mengendalikan argumen bernama, dan menggabungkan kedua-dua jenis dalam satu fungsi. Memahami konsep ini adalah penting untuk menulis kod Python yang serba boleh dan boleh disesuaikan.

Atas ialah kandungan terperinci Bagaimanakah `*args` dan `kwargs` Meningkatkan Fleksibiliti dalam Argumen Fungsi 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