我正在开发一个具有以下结构的python库
/application
/lib
__init__.py
/models
__init__.py
model1.py
model2.py
model3.py
在每个模型%.py文件中都有一个名为Model%的相应类。我喜欢将这些类保存在自己的文件中,但这意味着在我的应用程序中我需要从模型包中导入类,如此
from models.model1 import Model1
from models.model2 import Model2
from models.model3 import Model3
有没有办法做到这一点?
from models import Model1, Model2, Model3
感觉更直观,更像我正在做的事情。我有一个名为models的包,我希望它包含这些类,但我仍然希望每个类都有自己的文件,所以我只需添加一个文件即可添加新模型。
以前我把它放在我的/ application / lib / models / _ init _py文件中
from model1 import Model1
from model2 import Model2
from model3 import Model3
但我明白这是导入所有类,即使我只需要其中一个
答案 0 :(得分:2)
您的最终解决方案是正确的。如果它导致严重的性能问题,你应该只担心加载太多的类,我非常怀疑。
答案 1 :(得分:1)
一种方法是在models目录中创建一个导入类的文件,然后从该文件导入。例如,您可以创建一个名为api.py
的文件,其中包含
from model1 import Model1
from model2 import Model2
from model3 import Model3
然后你可以导入像这样的模型
from models.api import Model1, Model2, Model3
答案 2 :(得分:1)
为每个模块创建单独的包。将model1.py
放入model1
包中。在__init__.py
包的model1
文件中,输入
from model1 import Model1
然后,你将能够做到
from model1 import Model1
来自您的申请。