[英]Assign *args while using **kwargs
我有一個看起來像這樣的python函數:
def test(a, b, *args):
print(a, b, args)
我有一本字典(kwargs),其中只有a和b作為項目。 我想這樣稱呼測試:
test(**kwargs)
並為args分配更多值。 我該怎么做,如果不能,那么正確的方法是什么?
您將函數定義為始終接受位置參數或關鍵字參數: a
和b
,以及之后的位置參數列表。
在Python中,在關鍵字參數之后提供位置參數是一種語法錯誤。
因此,如果您還想提供其他位置參數,則不能在方法調用中使用**kwargs
字典解包。
但是,您只能使用位置參數-確保a
和b
是列表中的前兩個元素。
或者,如果您真的不想使用字典,則必須直接獲取a
和b
值,將其作為a
和b
位置傳遞,然后從字典中獲取剩余的items()
並使用它來調用函數。 但是,這將丟失鍵值。
您可以嘗試僅使用*args
作為參數。
例如:
def test(*args):
print(args)
test({"a": 1, "b":2, "c":3, "d":[1,2,3,45]})
輸出:
({'a': 1, 'c': 3, 'b': 2, 'd': [1, 2, 3, 45]},)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.