在 Python 3 中,我得到了这样的工作:
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
文件。
我试过了:
- 使用 level 参数(我尝试了 -1 和 1)
- 从
a_nested_package
_packageString
a_nested_package
从中删除packageString
并替换为.
另外,如果这是执行运行时导入函数的完全错误的方法,请告诉我!我对 Python 很陌生(来自 C++、PHP 和 Java)