下面的代码:通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”。