在Python 3我有这样的工作的:不同的实现在Python 2.7 __import __()和Python 3.x的
def aFunctionImportingAndCallingAnotherFunction(functionName, args):
packageString = "a_nested_package.to_be_imported.at_run_time"
_temp = __import__(packageString, globals(), locals(), [functionName], 0)
function = eval("_temp." + functionName)
return function(args)
在Python 2.7我得到一个错误,我通过与功能functionName
不存在。
在这个例子中,包装a_nested_package
在sys.path
,它有一个包to_be_imported
,它有一个包at_run_time
。所有软件包都有__init__.py
文件。
我尝试:
- 与水平参数播放(我想-1和1)
- 从
packageString
- 除去
a_nested_package
从packageString
除去a_nested_package
并用.
另外,如果这是完全错误的方法来执行运行时导入的函数,请让m知道!我非常新到Python(由C来++,PHP和Java)
为什么你不使用['importlib'模块](http://docs.python.org/2/library/importlib.html)? –
你真的想在这里做什么?动态导入模块,或者只是动态地在导入的模块中选择一个对象*。 –
@MartijnPieters:因为我不知道它;-)我会尽快试一试。 – DudeOnRock