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.
*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))
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
**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))
Sekarang, apabila kita memanggil fungsi ini, kita boleh menentukan hujah berdasarkan nama mereka:
table_kwargs(apple="fruit", cabbage="vegetable") # Prints "apple = fruit", "cabbage = vegetable"
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))
Anda kini boleh memanggil fungsi ini dengan kedua-dua kedudukan dan dinamakan hujah:
table_args_kwargs("Table of Stuff", apple="fruit", cabbage="vegetable")
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
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!