Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah pengendali asterisk (*) berfungsi dalam definisi dan panggilan fungsi Python?

Bagaimanakah pengendali asterisk (*) berfungsi dalam definisi dan panggilan fungsi Python?

DDD
DDDasal
2024-11-09 03:49:02787semak imbas

How does the asterisk (*) operator work in Python function definitions and calls?

Apakah Kepentingan Asterisk (*) dalam Definisi Fungsi Python?

Dalam Python, pengendali asterisk (*) memainkan peranan penting dalam mentakrifkan fungsi.

Fungsi Definisi

Apabila digunakan dalam takrifan fungsi, asterisk mempunyai dua bentuk:

  • *pengecam menandakan tuple yang mengumpul sebarang lebihan hujah kedudukan tidak secara eksplisit ditakrifkan dalam fungsi tandatangan.
  • **pengecam mewakili kamus yang mengagregatkan sebarang hujah kata kunci yang berlebihan.

Contoh

Pertimbangkan definisi fungsi berikut:

def get(self, *a, **kw)
  • Asterisk () selepas parameter a* mengumpul sebarang argumen kedudukan yang tinggal ke dalam tuple.
  • Asterisk berganda (*) selepas parameter kw* mengumpulkan sebarang argumen kata kunci yang tinggal ke dalam kamus.

Fungsi Panggilan

Apabila memanggil fungsi dengan argumen berlebihan, ia boleh dihantar menggunakan sintaks asterisk:

Argumen Kedudukan

foo("testa", "testb", "testc", "excess", "another_excess")

Dalam contoh ini, lebihan argumen kedudukan ("berlebihan" dan "lain_lebihan") dimasukkan ke dalam tuple.

Argumen Kata Kunci

foo(a="testa", d="excess", c="testc", b="testb", k="another_excess")

Argumen kata kunci yang berlebihan ("d" dan "k") dikumpulkan ke dalam kamus.

Membuka Hujah

Anda juga boleh membongkar kamus atau tupel ke dalam argumen fungsi menggunakan sintaks asterisk:

Membuka Kamus

argdict = dict(a="testa", b="testb", c="testc", excessarg="string")
foo(**argdict)

Membuka Tuple

argtuple = ("testa", "testb", "testc", "excess")
foo(*argtuple)

Kesimpulan

Pengendali asterisk (*) menyediakan cara yang mudah untuk mengendalikan lebihan hujah dalam definisi dan panggilan fungsi Python, membolehkan fleksibiliti dan kebolehbacaan kod.

Atas ialah kandungan terperinci Bagaimanakah pengendali asterisk (*) berfungsi dalam definisi dan panggilan 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