下面的代碼:通kwargs無效鍵值對的功能
def f(a=1):
pass
kwargs = {}
kwargs['a'] = 1
kwargs['b'] = 2
f(**kwargs)
(正確地)提出了一個例外:
Traceback (most recent call last):
File "tt.py", line 8, in <module>
f(**kwargs)
TypeError: f() got an unexpected keyword argument 'b'
有沒有一種方法,與functools或其他,獲得圍繞這一點,並找出哪些參數沒有被該函數使用,以便能夠將它們傳遞給另一個函數?例如,我可能有另外一個功能:
def g(a=None, b=None):
pass
我想打電話給後,例如,
g(**kwargs)
但我只想b
傳遞,因爲a
已經在前面的功能「用完」。
現在我知道這不是理想的編碼,但有些情況下它可以派上用場,而且它實際上很容易向用戶解釋,例如, 「其他參數將傳遞給f,任何未傳遞給f的參數都將傳遞給g」。