我正在尝试构建一个软件包,修复我的某个数据库中的任意数据不一致问题。我的设计包括两个类 - Problem
和Fix
。
问题是存储为.cfg
个文件的SQL查询(例如problem_001.cfg
),修复程序存储为Python文件(例如fix_001.py
)。查询配置文件具有对Python文件名的引用。每个修复程序都有一个类Fix
,它继承自基类BaseFix
。
`-- problems
|-- problem_100.cfg
|-- problem_200.cfg
|-- problem_300.cfg
`-- ...
`-- fixer
|-- __init__.py
| |-- fixers
| | |-- fix_100.py
| | |-- fix_200.py
| | |-- fix_300.py
| | |-- ...
| `-- ...
`-- ...
我想实例化Problem
个文件,并以干净的方式为它们提供Fix
个对象。有没有办法在不将所有修复程序保存在同一个文件中的情况下执行此操作?
更新
这是最终的代码(感谢@ Space_C0wb0y):
fixer_name='fix_100'
self.fixer=__import__('fixer.fixers', globals(), locals(),
[fixer_name]).__dict__[fixer_name].Fix()