如何解决Python:使用不同的参数遍历函数
class MyClass:
def f1(self,int_arg):
return int_arg
def f2(self,list_arg):
return list_arg
def f3(self,int_arg,list_arg):
return int_arg + sum(list_arg)
这些函数的参数值是固定的:
int_arg = 1
list_arg = [1,2]
现在,我想通过以下方式遍历类的功能并执行它们:
for f in ['f1','f2','f3']:
out = getattr(MyClass(),f)(<arguments>)
解决方法
简而言之,您想知道函数接收哪些参数。
为此,您可以使用inspect.signature
:
from inspect import signature
def sub_dict(d,keys):
return dict((k,d[k]) for k in keys)
int_arg = 1
list_arg = [1,2]
params = dict(int_arg=int_arg,list_arg=list_arg)
for f in ['f1','f2','f3']:
func = getattr(MyClass(),f)
out = func(**sub_dict(params,signature(func).parameters))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。