我想找出使用exec
进口的缺点。其中一个文件用作特定功能的实际实现的接口,具体取决于所选项目(框架旨在用于多个项目)。
第一个用例是这样的:
exec ("from API.%s.specific_API_%s import *" % (project, project))
project
这样,除了在接口模块本身中注入的变量之外,我不必对任何东西进行硬编码。
这是另一种方式:
if project == 'project_one':
from API.project_one.specific_API_project_one import *
elif project == 'project_two':
from API.project_two.specific_API_project_two import *
elif project == 'project_three':
from API.project_three.specific_API_project_three import *
这样,每次添加新项目以支持时,我都必须更改此接口文件。