Python使用getattr调用具有可变参数的函数
发布时间:2020-12-16 23:33:51 所属栏目:Python 来源:网络整理
导读:我正在使用getattr根据变量调用不同的函数. 我做这样的事情: getattr(foo,bar) () 这样工作,调用函数foo.bar() 我的问题是我有’bar’功能,我想用不同的参数调用它.例如: def f1() : passdef f2(param1) : passdef f3(param1,param2) : pass 所以’bar’可
我正在使用getattr根据变量调用不同的函数.
我做这样的事情: getattr(foo,bar) () 这样工作,调用函数foo.bar() 我的问题是我有’bar’功能,我想用不同的参数调用它.例如: def f1() : pass def f2(param1) : pass def f3(param1,param2) : pass 所以’bar’可以是f1,f2或f3 我试过这个: getattr(foo,bar) (for p in params :) 我正在看一个“干净”的解决方案,没有必要看看params变量的长度 解决方法
你可以尝试一下:
getattr(foo,bar)(*params) 如果params是列表或元组,那么这个方法起作用.来自params的元素将按顺序解包: params=(1,2) foo(*params) 相当于: params=(1,2) foo(params[0],params[1]) 如果有关键字参数,你也可以这样做. getattr(foo,bar)(*params,**keyword_params) 其中,keyword_params是一个字典. 此外,这个答案真的独立于getattr.它将适用于任何功能/方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |