我一直在查看 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/