Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Perbezaan Antara `*args` dan `kwargs` dalam Parameter Fungsi Python?
Menyingkap Kepentingan (Bintang Berganda) dan (Bintang) dalam Parameter Fungsi*
Dalam Python, berfungsi parameter yang dilambangkan dengan args dan *kwargs berfungsi sebagai mekanisme serba boleh untuk menampung hujah sewenang-wenangnya.
Membuka Hujah Kedudukan dengan *args
Parameter *args mengumpulkan semua hujah kedudukan yang mengatasi argumen yang dipratentukan menjadi tuple. Contohnya:
def foo(*args): for arg in args: print(arg)
Fungsi ini boleh menerima bilangan hujah kedudukan yang sewenang-wenangnya, seperti:
foo(1) # Output: 1 foo(1, 2, 3) # Output: 1 2 3
Memasang Hujah Kata Kunci dengan kwargs**
Sebaliknya, **kwargs mengumpul semua hujah kata kunci ke dalam a kamus.
def bar(**kwargs): for key, value in kwargs.items(): print(key, value)
Memanggil fungsi ini dengan argumen kata kunci menghasilkan:
bar(name='John', age=30) # Output: name John, age 30
Saling main args dan kwargs*
Kedua-dua simpulan bahasa boleh digabungkan untuk membolehkan gabungan tetap dan berubah hujah:
def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs)
Fungsi ini boleh dipanggil seperti berikut:
foo(123, 'a', 'b', apple='red') # Output: 123 ('a', 'b') None {'apple': 'red'}
Kes Penggunaan Tambahan
def foo(bar, lee): print(bar, lee) baz = [1, 2] foo(*baz) # Output: 1 2
first, *rest = [1, 2, 3, 4] # first = 1 # rest = [2, 3, 4]
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
Fungsi ini memerlukan tiga argumen kedudukan dan sebarang bilangan argumen kata kunci selepas *.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `*args` dan `kwargs` dalam Parameter Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!