Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Pengendali Bintang Tunggal dan Berganda (*) dan () Mengendalikan Argumen Pembolehubah dalam Definisi Fungsi Python?

Bagaimanakah Pengendali Bintang Tunggal dan Berganda (*) dan () Mengendalikan Argumen Pembolehubah dalam Definisi Fungsi Python?

Linda Hamilton
Lepaskan: 2024-12-24 16:57:10
asal
896 orang telah melayarinya

How Do Single and Double Star Operators (*) and () Handle Variable Arguments in Python Function Definitions?

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

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

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

Apabila dipanggil dengan foo(123, 'a', 'b', apple= 'merah'), pembolehubah 'jenis', 'args', 'bar' dan 'kwargs' akan mengandungi:

  • jenis = 123
  • args = ('a', 'b')
  • bar = Tiada
  • kwargs = {'epal': 'red'}

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

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan