GitHub上的Python文件结构

use*_*661 8 python

我一直在寻找一些关于Python的开源项目,我看到了很多我不熟悉的文件和模式.

首先,很多项目只有一个名为的文件setup.py,通常包含一个函数:

setup(blah, blah, blah)
Run Code Online (Sandbox Code Playgroud)

其次,很多包含一个简单调用的文件,__init__.py旁边没有任何信息.

第三,一些.py文件包含类似于此的语句:

if __name__ == "__main__"
Run Code Online (Sandbox Code Playgroud)

最后,我想知道是否有任何"最佳实践"用于在git存储库中划分Python文件.使用Java,由于类结构,文件分割的想法很自然.使用Python,许多脚本根本没有类,有时一个程序会有OOP方面,但是逐类分类并没有多大意义.它只是"无论是什么使代码最具可读性",还是有某些指导方针?

pok*_*oke 7

setup.py是使用distrubution实用程序的Python模块分发的一部分.它允许轻松安装 Python模块,并且在您希望将项目作为整个Python模块分发时非常有用.

__init__.py用于Python的包装系统.一个空文件通常足以让Python识别它所在的目录,但你也可以在其中定义不同的东西.

最后,__name__ == '__main__'检查是确保当前脚本直接运行(例如,从命令行),并且它不仅仅导入到其他脚本中.在Python脚本执行期间,只有一个模块的__name__属性将等于__main__.另请参阅我在这里答案或关于该主题的更一般的问题.