在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)
在Python2.7中,我得到一个错误,我用functionName
传递的函数不存在。在
在这个例子中,包a_nested_package
在sys.path
中,它有一个包to_be_imported
,它有一个包at_run_time
。所有包都有__init__.py
个文件。在
我试过了:
packageString
中删除{packageString
中删除a_nested_package
,并将其替换为.
另外,如果这是做运行时导入函数完全错误的方法,请让我知道!我对Python(来自C++、PHP和java)
非常陌生
__import__
的工作方式与import
语句相同。(有充分的理由)执行此操作时:
你的文件中没有
^{pr2}$baz
对象;你得到了foo
!同样,这:返回
foo
模块,但要保证它是用bar
填充的。在因此在您的示例中,},您必须自己遍历路径的其余部分。这很糟糕,这就是
__import__
返回{importlib
有用的原因。:){{1}从模块中动态检索{a1},然后使用该模块的名称^ 2动态检索:
相关问题 更多 >
编程相关推荐