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
Linda Hamiltonasal
2024-12-24 16:57:10777semak imbas

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

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:

  • 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

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!

Kenyataan:
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