[英]Rationalising package structure in python
我正在開發具有以下結構的 python 庫
/application
/lib
__init__.py
/models
__init__.py
model1.py
model2.py
model3.py
在每個 model%.py 文件中都有一個對應的 class 命名為 Model%。 我喜歡將這些類保存在自己的文件中,但這意味着在我的應用程序中,我需要從模型 package 中導入類,就像這樣
from models.model1 import Model1
from models.model2 import Model2
from models.model3 import Model3
有沒有辦法做到這一點?
from models import Model1, Model2, Model3
它感覺更直觀,更像我正在做的事情。 我有一個 package 稱為模型,我希望它包含這些類,但我仍然希望每個 class 都有自己的文件,因此我可以通過簡單地添加文件來添加新模型。
以前我把它放在我的 /application/lib/models/_ init _py 文件中
from model1 import Model1
from model2 import Model2
from model3 import Model3
但我知道這是導入所有類,即使我只需要其中一個
您的最終解決方案是正確的。 如果它會導致嚴重的性能問題,你應該只擔心加載太多的類,我非常懷疑。
一種方法是在您的模型目錄中創建一個文件來導入您的類,然后從該文件中導入。 例如,您可以創建一個名為api.py
的文件,其中包含
from model1 import Model1
from model2 import Model2
from model3 import Model3
然后你可以像這樣導入模型
from models.api import Model1, Model2, Model3
為每個模塊創建單獨的 package。 將model1.py
放入model1
package。 在model1
package的__init__.py
文件中,放
from model1 import Model1
那么,你將能夠做到
from model1 import Model1
從您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.