组织我的Python项目
我正在开始一个Python项目,并期望在其中有20个或更多的类。 至于好的做法,我想把它们放在一个单独的文件中。 但是,项目目录很快就会被文件淹没(或者当我这样做的时候)。
如果我把一个文件导入一个文件夹,我不能再导入它。 如何从另一个文件夹中导入文件,并且现在我需要引用它所包含的类,然后将它放在一个文件夹中?
提前致谢
在您的项目文件夹中创build一个__init__.py
文件,它将被Python视为一个模块。
然后可以使用以下语法导入包目录中的类:
from package import class import package.class
在__init__.py
,你可以创build一个from package import *
行为定义的__all__
数组:
# name1 and name2 will be available in calling module's namespace # when using "from package import *" syntax __all__ = ['name1', 'name2']
这里有更多的信息比你甚至想知道Python中的软件包
一般来说,了解如何组织大量代码的好方法是select一个stream行的Python包,看看他们是如何做到的。 我会检查出Django和扭曲 ,为初学者。
“好的做法,我想把它们放在一个单独的文件中。”
这实际上不是一个很好的做法。 您应该devise包含紧密相关类的模块。
实际上,没有一个class级是完全独立的。 一般而言,class级进入逻辑上相关的集群或组。
Python并不强迫你使用Java的令人讨厌的单类每文件风格。 事实上,如果不把每个课程放在一个单独的文件中,那么它甚至都不是一种好的方式。 (如果它们很大,你可能不得不重构。)相反,你应该将相似的类和函数分组。 例如,如果你正在编写一个GUI计算器,你的包布局可能如下所示:
/amazingcalc /__init__.py # This makes it a Python package and importable. /evaluate.py # Contains the code to actually do calculations. /main.py # Starts the application /ui.py # Contains the code to make a pretty interface
简单的答案是在您创build的新文件夹中创build一个名为__init__.py
的空文件。 然后在你的顶级.py文件中包含类似如下内容:
import mynewsubfolder.mynewclass