传递字典时如何删除/忽略意外的关键字参数?(How to remove/ignore unexpected keyword arguments when passing as dictionary?)

编程入门 行业动态 更新时间:2024-10-06 04:04:32
传递字典时如何删除/忽略意外的关键字参数?(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)

更多推荐

本文发布于:2023-08-07 17:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1465226.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字典   关键字   意外   参数   remove

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!