我可能没有使用正确的术语,但我正在学习python而且我正在尝试一些我可以在Lua中轻松完成的事情:
def fire(self):
return self._loadModule()[self._entrypoint]() #subscripting the module raises an error
def _loadModule(self):
return __import__(self._module)
我想加载模块然后调用该模块中的任意函数。这样做的正确方法是什么?
编辑: 模块和入口点名称在运行时确定。
答案 0 :(得分:3)
如果我理解的话;一个完全没用的例子:
def my_sqrt(num):
import math #load a module
return math.sqrt(num) #call the function
来自字符串:
>>> def f(module, function, *args):
... return(getattr(__import__(module), function)(*args))
...
>>> f("math", "sqrt", 2)
1.4142135623730951
答案 1 :(得分:1)
mod = 'os'
func = 'listdir'
m = __import__(mod)
f = getattr(m, func)
import os
assert f is os.listdir
答案 2 :(得分:0)
__import__('math').sqrt(2)
也许?