揭秘函數參數中(雙星)和(星)的意義*
Python 中,函數由*
Python 中,函數由*Python 中,函數由
*Python 中,函數由def foo(*args): for arg in args: print(arg)args 和
*kwargs表示的參數作為通用機制來適應任意
foo(1) # Output: 1 foo(1, 2, 3) # Output: 1 2 3
使用*args 解包位置參數
*args 參數將所有超過預定義位置參數的位置參數收集到一個元組中。例如:def bar(**kwargs): for key, value in kwargs.items(): print(key, value)此函數可以接受任意數量的位置參數,例如:
bar(name='John', age=30) # Output: name John, age 30
使用kwargs**另一方面,**kwargs 將所有關鍵字參數收集到一個字典。
使用關鍵字參數調用此函數會產生:def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs)args 和
foo(123, 'a', 'b', apple='red') # Output: 123 ('a', 'b') None {'apple': 'red'}kwargs
*這兩個習語可以組合起來以允許固定和可變的混合參數:
def foo(bar, lee): print(bar, lee) baz = [1, 2] foo(*baz) # Output: 1 2
first, *rest = [1, 2, 3, 4] # first = 1 # rest = [2, 3, 4]
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass僅限關鍵字參數(Python 3 ): 函數可以使用下列語法限制關鍵字參數:此函數需要三個位置參數以及*. 之後的任意數量的關鍵字參數
以上是Python 函式參數中的「*args」和「kwargs」有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!