我搜索了网页和这个网站,找不到这个问题的答案。我确信它就在我面前的某个地方,但找不到它。
我需要能够导入一个基于字符串的模块。然后在传递参数时在该模块中执行函数。
我可以基于字符串导入,然后使用eval()执行,但我知道这不是处理此问题的最佳方法。我似乎也不能那样传递论点。
基于字符串设置的当前模块名为TestAction.py,位于名为Tasks的文件夹中。 这是TestAction.py的内容:
def doSomething(var):
print var
这是我正在执行的导入TestAction并执行的代码。
module = "Tasks.TestAction"
import Tasks
mymod = __import__(module)
eval(module + ".doSomething()")
如何使代码1不使用eval()
,并将var参数传递给doSomething()
?
提前谢谢!
谢谢大家的帮助。看起来importlib和getattr是我需要的。这里是为我工作的确切代码,供以后参考。
函数名也是变量吗?如果没有,请使用导入的模块:
如果是,请使用
getattr
:根据文件
使用此选项,您可以按如下方式检索模块:
之后,您可以简单地正常调用函数或按名称调用函数:
我希望这回答了你的问题,如果你还漏掉了什么,请详细说明。
相关问题 更多 >
编程相关推荐