packageName\
__init__.py
src\
__init__.py
someFile.py
classes\
__init__.py
engine1.py
engine2.py
engine.py
tests\
__init__.py
myTests.py
temp\
我正在使用Python的OOP,我有幾個問題。構建Python OOP代碼和模塊
據我所知,__init__.py
將文件夾定義爲一個模塊,但我不明白的是這對我有什麼好處。
如果需要從packageName/src/classes
文件夾導入類,我該如何運行myTests.py
?
$ python packageName/tests/myTests.py
上面的調用是我想我打算如何運行我的測試。如果結構是這種情況,我如何導入類?
from ..src.classes.engine1 import *
我強烈建議你閱讀[漫遊指南包裝1.0 - 佈置您的項目(http://guide.python-distribute.org/quickstart的.html#佈局設計,你的項目)。如果你把你的項目組織成一個合適的包並安裝它,你將能夠在系統的任何地方使用絕對導入(例如:'from src.classes.engine1 import something')。此外,我強烈建議您避免使用'import *'語句......它們會污染模塊的命名空間並導致各種不尋常的問題。 – 2013-02-15 23:24:39
將'__init __。py'文件添加到文件夾使其成爲其他模塊(和/或子包)的_package_,而不是模塊本身。 – martineau 2013-02-16 03:25:14