组织我的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