GitHub 上的 Python 文件结构

标签 python

我一直在查看 Python 上的一些开源项目,我看到了很多我不熟悉的文件和模式。

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

setup(blah, blah, blah)

其次,很多都包含一个名为 __init__.py 的文件,几乎不包含任何信息。

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

if __name__ == "__main__"

最后,我想知道在 git 存储库中划分 Python 文件是否有任何“最佳实践”。对于 Java,由于类结构,文件划分的想法很自然。在 Python 中,很多脚本根本就没有类,有时一个程序会有 OOP 方面,但是一个类一个类的划分并没有那么大的意义。仅仅是“使代码最具可读性的任何东西”,还是有一些关于此的指导方针?

最佳答案

setup.py 是使用 distrubution utilities 的 Python 模块分发的一部分.它允许 easy installation Python 模块的一部分,当您想将项目作为整个 Python 模块分发时很有用。

__init__.py 用于 Python 的 package system .一个空文件通常足以让 Python 将它所在的目录识别为一个包,但您也可以在其中定义不同的东西。

最后,__name__ == '__main__' 检查是为了确保当前脚本是直接运行的(例如从命令行运行),而不只是导入到其他脚本中。在 Python 脚本执行期间,只有一个模块的 __name__ 属性将等于 __main__。另见 my answer here或更多general question关于那个话题。

关于GitHub 上的 Python 文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256213/

相关文章:

python - 具有在 numpy 数组中定义的 bin 高度的堆叠直方图

python - Pandas 有效检查列是否包含其他列中的字符串

python - 如何在 Python3 中使用 pylab 去除 x 轴标签中的困惑/重叠?

python - 将所有数据的聚合添加到箱线图中

python - 克隆后增加 EC2 EBS 卷 - resize2fs 不起作用

python - 在Mac OS X上控制Python-设置环境和库

python - 如何将私钥和公钥存储到python的rsa模块生成的pem文件中

jquery - Django + Jquery,扩展AJAX div

python - 我需要一个函数,给定相似的输入返回相似的索引

python - 如何在 Pandas 中选择包含一个或多个关键字(来自现有列表)的行?