我正在開發一個Python App Engine應用程序,在這裏我想分割的源代碼文件Models.py
的內容轉換成單獨的文件爲每個模型,但我希望把它所有的名爲模型文件夾中。問題是,當我這樣做時,我的應用程序無法再找到類。我該怎麼辦?如何組織Python源代碼文件?
這個問題是不是MVC but another question with the same title is。
我正在開發一個Python App Engine應用程序,在這裏我想分割的源代碼文件Models.py
的內容轉換成單獨的文件爲每個模型,但我希望把它所有的名爲模型文件夾中。問題是,當我這樣做時,我的應用程序無法再找到類。我該怎麼辦?如何組織Python源代碼文件?
這個問題是不是MVC but another question with the same title is。
將一張空__init__.py
文件中的車型目錄。
然後,在你的應用程序;大概一個級別,您引用模塊的型號目錄如下:
import Models
,並用它做什麼這樣的:
Models.my_model.MyClassName
您也可以使用from
關鍵字如下:
from Models import my_model
和參考這樣的:
my_model.MyClassName
如果你只需要一個方法,從一個模塊,你也可以這樣做:
from Models.my_model import my_method_name
my_method_name()
強制性鏈接documentation。
亞當伯尼爾提供的包是如何工作的一個很好的技術說明。 http://jcalderone.livejournal.com/39794.html
關於如何安排和發貨項目的詳細說明,請參閱亞當的回答,關於10個課程的10個進口,首先不要忘記每個課程不需要一個課程Python中的模塊。模塊應按功能進行組織,因此如果有意義的話,可以將相關類組合到一個文件中。
如果你仍然想使所有導入的類一氣呵成,你可以使用from submodule import Class
語法導入它們都在__init__.py
文件本身,則只需導入該模塊包含 - import mainmodule
並參考mainmodule.Class1
等,甚至使用from mainmodule import Class1, Class2, Class3
導入類直接進入你的空間和直接引用他們。
我投這件事,與模塊和包名應該小寫的CAVET。並且具有____init____.py文件的目錄是包而不是模塊。 – 2010-02-13 01:39:49
與分裂類爲在Python不同的文件的問題是,我有我的地方用它來添加模塊前綴。這是繁瑣的,它不會在C# – 2010-02-13 01:52:05
@Jader發生:你可以避免通過導入你需要明確具體的班級,從'模塊中導入ClassName'做到這一點。 – bernie 2010-02-13 01:53:05