Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `*args` dan `kwargs` Mengendalikan Argumen Pembolehubah dalam Fungsi Python?

Bagaimanakah `*args` dan `kwargs` Mengendalikan Argumen Pembolehubah dalam Fungsi Python?

DDD
Lepaskan: 2024-12-23 02:21:13
asal
544 orang telah melayarinya

How Do `*args` and `kwargs` Handle Variable Arguments in Python Functions?

Memahami Kepentingan (Star/Asterisk) dan * (Double Star/Asterisk) dalam Parameter

Dalam definisi fungsi Python, dan * operator menyediakan simpulan bahasa yang berkuasa untuk mengendalikan bilangan sewenang-wenangnya argumen.

Argumen Kedudukan: *args

  • Parameter *args membenarkan fungsi menerima nombor pembolehubah argumen kedudukan.
  • Argumen ini dikumpulkan ke dalam tuple yang boleh diakses dalam fungsi.

Contoh:

def foo(x, y, *args):
    pass

foo(1, 2, 3)
# args = (3,)
Salin selepas log masuk

Argumen Kata Kunci: kwargs**

  • The **Parameter kwargs membenarkan fungsi menerima sebarang bilangan hujah kata kunci.
  • Ini hujah dikumpulkan ke dalam kamus dengan kuncinya ialah nama hujah dan nilainya ialah nilai hujah.

Contoh:

def bar(x, y, **kwargs):
    pass

bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}
Salin selepas log masuk

Mencampurkan Argumen Tetap dan Boleh Ubah

  • Kedua-duanya args dan *kwargs boleh digabungkan dengan argumen tetap biasa untuk memberikan fleksibiliti dalam definisi fungsi.

Contoh:

def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}
Salin selepas log masuk

Tambahan Penggunaan

    • boleh digunakan untuk membongkar senarai argumen apabila memanggil fungsi.
  • Dalam Python 3, dan * boleh digunakan di sebelah kiri tugasan untuk membongkar iterables ke dalamnya pembolehubah.
  • Python 3.6 memperkenalkan sintaks baharu yang mengehadkan hujah kedudukan selepas *.

Nota:

  • Python menggunakan kamus untuk mewakili hujah kata kunci, yang mengekalkan susunan sisipan dalam Python 3.6 .
  • kamus kwargs mengekalkan susunan sisipan dalam Python 3.7 dan ke atas, walaupun untuk pelaksanaan bukan CPython.

Atas ialah kandungan terperinci Bagaimanakah `*args` dan `kwargs` Mengendalikan Argumen Pembolehubah dalam 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