您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python使用getattr调用具有可变参数的函数

5b51 2022/1/14 8:23:11 python 字数 2194 阅读 589 来源 www.jb51.cc/python

我正在使用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) ()

这样工作,调用函数foo.bar()

我的问题是我有’bar’功能,我想用不同的参数调用它.例如:

def f1() :
  pass

def f2(param1) :
  pass

def f3(param1,param2) :
  pass

所以’bar’可以是f1,f2或f3

我试过这个:
假设params是包含“bar”函数所需的所有参数的列表

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.它将适用于任何功能/方法.

总结

以上是编程之家为你收集整理的Python使用getattr调用具有可变参数的函数全部内容,希望文章能够帮你解决Python使用getattr调用具有可变参数的函数所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶