Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pengendali Bintang Tunggal dan Berganda (*) dan () Mengendalikan Argumen Pembolehubah dalam Definisi Fungsi Python?
Pembukaan Parameter: dan dalam Definisi Fungsi*
Takrifan fungsi dalam Python boleh memanfaatkan (bintang ) dan * (bintang berganda) untuk mengendalikan bilangan yang berbeza-beza argumen.
Operator Bintang Tunggal (*)
Pengendali (juga dikenali sebagai "var-args" atau "splat") mengumpulkan semua hujah kedudukan yang diluluskan kepada fungsi menjadi tupel yang dipanggil args. Sebagai contoh, dalam takrifan di bawah:
def foo(x, y, *args): pass
Jika args digunakan dengan foo(1, 2, 3, 4, 5), tuple args akan mengandungi (3, 4, 5).
Operator Dua Bintang ()**
Pengendali (juga dikenali sebagai "var-kwargs" atau "percikan kata kunci") menangkap semua hujah kata kunci sebagai kamus bernama kwargs**. Dalam takrifan berikut:
def bar(x, y, **kwargs): pass
Apabila bar digunakan dengan bar(1, 2, name='Alice', umur=30), kwarg kamus akan mengandungi {'name': 'Alice', 'age': 30}.
Mixing Standard dan Argumen Pembolehubah
Takrifan fungsi boleh menggabungkan argumen biasa dengan argumen pembolehubah menggunakan *:
def foo(kind, *args, bar=None, **kwargs): pass
Apabila dipanggil dengan foo(123, 'a', 'b', apple= 'merah'), pembolehubah 'jenis', 'args', 'bar' dan 'kwargs' akan mengandungi:
Membuka Senarai Argumen
*: juga boleh digunakan untuk membongkar senarai argumen semasa memanggil fungsi:
def foo(bar, lee): pass baz = [1, 2] foo(*baz) # Unpacks baz into [1, 2] for bar and lee
Pembukaan Boleh Lelar Lanjutan (Python 3)
Dalam Python 3, *l boleh digunakan di sebelah kiri tugasan untuk membongkar iterable kepada berbilang pembolehubah:
first, *rest = [1, 2, 3, 4] # first = 1, rest = [2, 3, 4]
Argumen Kata Kunci Sahaja (Python 3)
Python 3 memperkenalkan argumen kata kunci sahaja, di mana selepas *: hanya argumen kata kunci dibenarkan:
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
Atas ialah kandungan terperinci Bagaimanakah Pengendali Bintang Tunggal dan Berganda (*) dan () Mengendalikan Argumen Pembolehubah dalam Definisi Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!