簡體   English   中英

合理化 python 中的 package 結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM