【发布时间】:2011-11-09 16:49:50
【问题描述】:
我有以下文件夹结构:
- MyProject
- App1
- some_module1.py
- some_module2.py
- App2
- some_other_module1.py
- some_other_module2.py
在每个模块中(例如 some_module1.py)都有一个从基类扩展而来的类,在我的例子中是 Producer。
我想要做的是在这个类中动态加载。为此,我有一个“已安装应用程序”列表,如下所示:
INSTALLED_APPS = (
'App1',
'App2',
)
我正在尝试编写一个函数来检查每个“应用程序”包中的特定生产者类,并确保它从生产者基类扩展。像这样的:
module_class = 'some_module1.SomeClass'
# Loop through each package in the INSTALLED_APPS tuple:
for app in INSTALL_APPS:
try:
#is the module_class found in this app?
#App1.some_module1.SomeClass - Yes
#App2.some_module1.SomeClass - No
# is the class we found a subclass of Producer?
exception ImportError:
pass
我尝试过使用 imp 和 importlib,但它似乎无法处理这种导入。反正我能做到这一点吗?
【问题讨论】:
-
对不起 - 无法弄清楚你想要什么 - 你的伪代码不清楚。然而,Python 确实会处理来自正确位置的 abse 类。这样任何 App1.Class_ 都会看到 App1 模块中定义的“Producer”。
-
对不起,我尽量说清楚。我已经对帖子进行了编辑,希望它更有意义。
标签: python python-import