簡體   English   中英

在使用** kwargs時分配* args

[英]Assign *args while using **kwargs

我有一個看起來像這樣的python函數:

def test(a, b, *args):
    print(a, b, args)

我有一本字典(kwargs),其中只有a和b作為項目。 我想這樣稱呼測試:

test(**kwargs)

並為args分配更多值。 我該怎么做,如果不能,那么正確的方法是什么?

您將函數定義為始終接受位置參數或關鍵字參數: ab ,以及之后的位置參數列表。

在Python中,在關鍵字參數之后提供位置參數是一種語法錯誤。

因此,如果您還想提供其他位置參數,則不能在方法調用中使用**kwargs字典解包。

但是,您只能使用位置參數-確保ab是列表中的前兩個元素。

或者,如果您真的不想使用字典,則必須直接獲取ab值,將其作為ab位置傳遞,然后從字典中獲取剩余的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM