-1
爲什麼我在這段代碼中出現這個錯誤?爲什麼此代碼使用可變參數會導致TypeError?
當代碼被執行我得到這個錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fun() got an unexpected keyword argument 'x'
爲什麼我在這段代碼中出現這個錯誤?爲什麼此代碼使用可變參數會導致TypeError?
當代碼被執行我得到這個錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fun() got an unexpected keyword argument 'x'
你的函數不接受關鍵字參數可言,只有定位參數。 *varargs
語法僅捕獲額外的位置參數(不帶前綴name=
)。
或者刪除關鍵字參數語法並僅傳遞位置參數,或更新您的函數以獲取關鍵字參數。
以下工作:
fun(1, 4, 5) # b will be set to (4, 5)
或添加**c
或類似的關鍵字**varkwargs
名函數簽名:
def fun(a, *b, **c):
print(a, b, c)
fun(1, x=4, y=5) # prints 1() {'x': 4, 'y': 5}
對於這個具體的例子,*b
爭論可能會因爲你不被丟棄實際上在這裏通過一個以上的立場論點。
因爲你的函數不接受可選的關鍵字參數。我想,你想在函數簽名中的'b'前加2個星號。 –
你可能打算寫'def fun(a,** b):' – L3viathan