Python 函數中使用 和 進行參數解包*
在Python 函數中, 和
在Python 函數中,和在Python 函數中, 和
在Python 函數中,和
def foo(x, y, *args): for a in args: print(a)
和
*語法允許參數具有更大的靈活性1 2 3
位置參數解包(kwargs)
*args 參數收集所有位置參數為一個元組。例如:
def bar(x, y, **kwargs): for k, v in kwargs.items(): print(k, v)
調用foo(1, 2, 3) 打印:
name John
關鍵字參數解包(kwargs
)
def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs)
123 ('a', 'b') None {'apple': 'red'}
組合拆包
def foo(a, b, c): print(a, b, c) obj = {'b':10, 'c':'lee'} foo(100, **obj) # Prints 100 10 lee
這兩個習慣用法可以組合起來以允許混合使用固定參數和可變參數。例如:
呼叫foo(123, 'a', 'b', apple='red') 印出:
def foo(bar, lee): print(bar, lee) baz = [1, 2] foo(*baz) # Prints 1 2
相反,kwargs 可以是用於解壓縮函數呼叫中的關鍵字參數。例如:
first, *rest = [1, 2, 3, 4] # first = 1 # rest = [2, 3, 4]
*解包列表和元組 * 語法也可用於在呼叫函數時解包列表和元組。例如:
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
以上是Python 的 *args 和 kwargs 如何處理函式參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!