传递字典时如何删除/忽略意外的关键字参数?(How to remove/ignore unexpected keyword arguments when passing as dictionary?)
下面的代码
def f(par1, par2): print("par1 = %s, par2 = %s" % (str(par1), str(par2))) pars = { 'par1': 12, 'par2': 13, 'par3': 14 } f(**pars)引发错误
TypeError: f() got an unexpected keyword argument 'par3'如何忽略par3或找到,它是意想不到的,并通过程序从字典中弹出它?
The following code
def f(par1, par2): print("par1 = %s, par2 = %s" % (str(par1), str(par2))) pars = { 'par1': 12, 'par2': 13, 'par3': 14 } f(**pars)raises error
TypeError: f() got an unexpected keyword argument 'par3'How to either ignore par3 or find, that it is unexpected and pop it from dictionary programmtically?
最满意答案
你可以用__code__.co_varnames来获得函数参数
expected = {key: pars[key] for key in f.__code__.co_varnames} f(**expected)You can get functions arguments with __code__.co_varnames
expected = {key: pars[key] for key in f.__code__.co_varnames} f(**expected)更多推荐
发布评论