在Python程序中给定带有函数名称的字符串调用函数的最佳方法是什么.例如,假设我有一个模块foo,我有一个内容为的字符串"bar".什么是最好的打电话foo.bar()?
我需要获取函数的返回值,这就是我不仅仅使用它的原因eval.我想通过使用eval定义一个返回该函数调用结果的临时函数来做到这一点,但我希望有更优雅的方法来做到这一点.
我有一个函数名存储在一个变量中,如下所示:
myvar = 'mypackage.mymodule.myfunction'
Run Code Online (Sandbox Code Playgroud)
而我现在想要像这样打电话给我
myvar(parameter1, parameter2)
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最简单方法是什么?
几天前我在网上搜索,我发现了一篇关于python词典的有趣文章.它是关于使用字典中的键来调用函数.在那篇文章中,作者定义了一些函数,然后是一个字典,其键与函数名完全相同.然后他可以从用户那里获得一个输入参数并调用相同的方法(类似于实现大小写).之后我意识到了同样的事情,但不知何故有所不同.我想知道如何实现这一点.如果我有一个功能:
def fullName( name = "noName", family = "noFamily" ):
return name += family
Run Code Online (Sandbox Code Playgroud)
现在,如果我有这样的字符串:
myString = "fullName( name = 'Joe', family = 'Brand' )"
Run Code Online (Sandbox Code Playgroud)
有没有办法执行这个查询并得到一个结果:JoeBrand
例如我记得的是我们可能会给exec()语句一个字符串,它为我们做了.但是我不确定这个特例,而且我也不知道Python的有效方法.而且我将非常感谢帮助我如何处理函数返回值,例如在我的情况下如何打印该函数返回的全名?
s = "func"
Run Code Online (Sandbox Code Playgroud)
现在假设有一个称为func的函数。当函数名以字符串形式给出时,如何在Python 2.7中调用func?