我应该如何组织Python源代码?
我正在开始使用Python(现在是时候让我一试了),我正在寻找一些最佳实践。
我的第一个项目是一个在多个线程中运行命令行实验的队列。 我开始得到一个很长的main.py
文件,我想分解它。 一般来说,我在找: python程序员如何组织多个源文件? 有没有适合你的特定结构?
我的具体问题包括:
- 每个class级应该在一个单独的文件?
- 我应该如何组织相对于源代码的unit testing?
- 我应该在哪里放置文档注释,特别是那些用于命令行操作的文档?
- 如果我使用多个目录,我如何导入它们之间的类?
我可以通过反复试验在这里得出我自己的一些结论,但我宁愿从好的事情出发。
Eric指出的文章非常棒,因为它涵盖了组织大型Python代码库的细节。
如果您已经从Google登陆Google,并试图找出如何将一个大的源文件分割成多个更易于pipe理的文件,我将简要总结一下这个过程。
假设你目前拥有一个名为main.py
的文件:
- 在同一个文件夹中创build另一个源文件(让我们在这个例子中调用我们的
utils.py
) - 把你需要的任何类,函数,语句等从
main.py
移到utils.py
- 在
main.py
的顶部添加一行:import utils
从概念上讲,这是在另一个源文件中创build一个名为utils
的新模块。 然后您可以将其导入到需要的地方。
您应该组织代码和testing的方式与使用任何OO语言完全相同。
从我做的方式的答案。 这可能是不对的,但为我工作
- 取决于你的function如何分割。 对于我的主要的Python应用程序,我有1个文件的类入口点,然后包不同位的function
- 我使用PyDev进行eclipse,并像Java一样组织它。
> Workspace > | > |-Src > | |-Package1 > | |-Package2 > | |-main.py > |-Test > |-TestPackage1 > |-TestPackage2
- 随处使用DocString来跟踪一切
- 确保相关的
__init__.py
文件在文件夹中后。 它只是一个from module import class
的简单情况