我有结构:
modules
__init__.py
version_1.py
version_2.py
settings.py
my_script.py
__init__.py
在文件版本_1和版本_2中,我有两个版本相同的功能:
def ext_function(*args, **kwargs):
# something
我想在文件settings.py中定义已加载的版本:
EXT_MODULE = 'modules.version_1'
并在my_script中执行函数,如下所示:
settings.EXT_MODULE.ext_function(args)
怎么做? EXT_MODULE是一个字符串,所以我不能执行这样的函数。
答案 0 :(得分:1)
您可以使用importlib
模块:
import importlib
module = importlib.import_module(settings.EXT_MODULE)
module.ext_function(args)