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

Bagaimanakah asterisk (*) berfungsi dalam definisi fungsi Python?

Patricia Arquette
Lepaskan: 2024-11-09 12:47:02
asal
419 orang telah melayarinya

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

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

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

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

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