下标python模块

时间:2011-06-28 16:39:57

标签: python

我可能没有使用正确的术语,但我正在学习python而且我正在尝试一些我可以在Lua中轻松完成的事情:

def fire(self):        
    return self._loadModule()[self._entrypoint]() #subscripting the module raises an error

def _loadModule(self):
    return __import__(self._module)

我想加载模块然后调用该模块中的任意函数。这样做的正确方法是什么?

编辑: 模块和入口点名称在运行时确定。

3 个答案:

答案 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)也许?