我很困惑,爲什麼這個錯誤發生:當嘗試使用** kwargs函數調用函數時出現TypeError?
TypeError: func1() takes exactly 0 arguments (1 given)
的代碼如下:
def func1(**kwargs):
if kwargs['dog'] != 2:
return False
return True
def func2(**kwargs):
if kwargs['cat'] != 3:
return False
return True
def func3(*listOfFuncs, **extraArgs):
for func in listOfFuncs:
if func(extraArgs) == False:
print 'break'
break
print 'continue'
continue
func3(func1, func2, dog=2, cat=1)
我試圖通過函數名作爲參數傳遞給FUNC3。當我們在fun3中調用func1和func2時,我還想將'cat'和'dog'關鍵字參數傳遞給func1和func2,但是在每個函數中只使用一個關鍵字參數?
任何幫助,將不勝感激
你張貼不可能匹配到代碼中的錯誤,沒有'testy'任何地方 –
對不起。我重寫了代碼,以便更容易閱讀堆棧溢出,但忘記更新錯誤消息。它已被糾正。 – Nicholas
如果您對我的解決方案感到滿意,那麼請將答案標記爲有用(Upvote),這對其他用戶也有幫助。這樣我們可以管理堆棧溢出的好習慣。 –