【发布时间】:2014-12-15 14:48:44
【问题描述】:
我正在使用一个包含许多子组件的 API。我正在制作一个工具包来与这个 API 进行交互,我想制作它以便我可以根据变量动态加载一些类,例如,加载所有内部设置了变量 api_module = True 的类。
.
├── APIModules
│ ├── ccu.py
│ ├── __init__.py
│ └── OpenAPI.py
ccu 文件中的 CCU 类
class CCU:
api_module = True
actions = ['post_new_purge','get_purge_queue','get_purge_status']
这将帮助我在添加更多类时动态记录和扩展工具包,而无需在每次添加新子组件时维护导入列表。有没有简单的方法可以做到这一点?
我知道我可以使用 glob 获取 APIModules 目录中所有 python 文件的列表,但是我想加载并检查文件中的任何类,而不知道它们可能被调用什么。
import os
import glob
modules = glob.glob(os.path.dirname(__file__)+"/*.py")
【问题讨论】:
-
“加载”一个类是什么意思?您必须对其进行评估才能获得标志。
-
我的意思是导入,但我想获取目录中所有文件中的所有类。我不介意他们都会被评估。
标签: python import dynamic-loading