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

Bagaimanakah asterisk (*) berfungsi dalam definisi fungsi Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-09 12:47:02412semak imbas

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

Memahami Asterisk (*) dalam Definisi Fungsi Python

Dalam Python, asterisk (*) mempunyai makna yang signifikan dalam mentakrifkan fungsi. Dokumentasi rujukan untuk definisi fungsi memberi penerangan tentang penggunaannya:

  • Argumen Kedudukan Berlebihan: Borang sintaks *pengecam menerima sebarang parameter kedudukan yang tinggal yang tidak termasuk dalam tandatangan fungsi dan memulakannya kepada tupel. Secara lalai, tuple kosong ditetapkan jika tiada argumen kedudukan yang berlebihan.
  • Argumen Kata Kunci Berlebihan: Borang sintaks **pengecam menyimpan sebarang argumen kata kunci tambahan yang tidak diambil kira dalam tandatangan fungsi dan menugaskannya ke kamus baharu. Lalai ialah kamus kosong jika tiada hujah kata kunci berlebihan.

Berikut ialah contoh nyata untuk menggambarkan aplikasinya:

Contoh 1: Lebihan Hujah Kata Kunci

def foo(a, b, c, **args):
    print(f"a = {a}")
    print(f"b = {b}")
    print(f"c = {c}")
    print(args)

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

Contoh 2: Lebihan Hujah Kedudukan

def foo(a, b, c, *args):
    print(f"a = {a}")
    print(f"b = {b}")
    print(f"c = {c}")
    print(args)

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

Membuka Hujah

Asterisk juga boleh digunakan untuk membongkar kamus atau tupel ke dalam argumen fungsi:

Contoh 3: Membongkar Kamus

def foo(a, b, c, **args):
    print(f"a={a}")
    print(f"b={b}")
    print(f"c={c}")
    print(f"args={args}")

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

Contoh 4: Membongkar Tuple

def foo(a, b, c, *args):
    print(f"a={a}")
    print(f"b={b}")
    print(f"c={c}")
    print(f"args={args}")

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

Dengan memahami penggunaan asterisk dalam definisi fungsi Python, anda boleh mengendalikan lebihan argumen dan membongkar data ke dalam argumen fungsi dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah asterisk (*) berfungsi 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