0
我有這樣的函數包裝。命名可選參數和多個參數順序
def funcWrapper(fn_ng, order=None, *args):
def clsr(X):
if order is not None:
X = calc_poli_dsX(X, order)
return fn_ng(X, *args);
return clsr;
但是,如果我用下面這個函數:
mGrdnt = funcWrapper(gd.squared_error, dsX1, dy, order=None)
mGrdnt = funcWrapper(gd.squared_error, dsX1, dy)
我
TypeError: funcWrapper() got multiple values for keyword argument 'order'
我猜的錯誤是,如果我不指定 '秩序',funcWrapper會傳遞'dsX1'和'dy'作爲* arg傳遞,但事實證明它們不是。無論我指定一個可選參數,似乎'dsX1'和'dy'都進入名爲可選參數的'順序'。
當可選參數爲/或未指定時,如何製作可將dsX1和dy傳遞到* arg的函數包裝器?
謝謝您的回答。看來我總是必須遵循這個順序。如果我喜歡funcWrapper(gd.squared_error,[dsX1,dy]),[dsX1,dy]進入可選狀態並且不起作用。如果我做funcWrapper(gd.squared_error,* arr),dsX1進入選項... – noclew