Python 函數定義中的星號 (*) 如何運作?

Patricia Arquette
發布: 2024-11-09 12:47:02
原創
355 人瀏覽過

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

理解Python 函數定義中的星號(*)

在Python 中,星號(*) 在定義函數時具有重要意義。函數定義的參考文件闡明了其用法:

  • 多餘位置參數:語法形式*identifier 接受函數簽名中未包含的任何剩餘位置參數並初始化它們到一個元組。預設情況下,如果沒有多餘的位置參數,則分配一個空元組。
  • 多餘關鍵字參數:語法形式 **identifier 儲存函數簽章中未考慮的任何其他關鍵字參數並將它們指派給新字典。如果沒有多餘的關鍵字參數,則預設為空字典。

以下是具體範例來說明其應用:

範例1:多餘的關鍵字參數

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")
登入後複製

範例2:多餘的位置參數

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")
登入後複製

解包參數

星號也可以使用將字典或元組解包到函數參數中:

範例3:解包字典

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)
登入後複製

範例4:解包元組

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)
登入後複製

透過了解星號在Python 函數定義中的用法,您可以有效地處理多餘的參數並將資料解包到函數參數中。

以上是Python 函數定義中的星號 (*) 如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板