我应该如何组织Python源代码?

我正在开始使用Python(现在是时候让我一试了),我正在寻找一些最佳实践。

我的第一个项目是一个在多个线程中运行命令行实验的队列。 我开始得到一个很长的main.py文件,我想分解它。 一般来说,我在找: python程序员如何组织多个源文件? 有没有适合你的特定结构?

我的具体问题包括:

  1. 每个class级应该在一个单独的文件?
  2. 我应该如何组织相对于源代码的unit testing?
  3. 我应该在哪里放置文档注释,特别是那些用于命令行操作的文档?
  4. 如果我使用多个目录,我如何导入它们之间的类?

我可以通过反复试验在这里得出我自己的一些结论,但我宁愿从好的事情出发。

Eric指出的文章非常棒,因为它涵盖了组织大型Python代码库的细节。

如果您已经从Google登陆Google,并试图找出如何将一个大的源文件分割成多个更易于pipe理的文件,我将简要总结一下这个过程。

假设你目前拥有一个名为main.py的文件:

  • 在同一个文件夹中创build另一个源文件(让我们在这个例子中调用我们的utils.py
  • 把你需要的任何类,函数,语句等从main.py移到utils.py
  • main.py的顶部添加一行: import utils

从概念上讲,这是在另一个源文件中创build一个名为utils的新模块。 然后您可以将其导入到需要的地方。

您应该组织代码和testing的方式与使用任何OO语言完全相同。

从我做的方式的答案。 这可能是不对的,但为我工作

  1. 取决于你的function如何分割。 对于我的主要的Python应用程序,我有1个文件的类入口点,然后包不同位的function
  2. 我使用PyDev进行eclipse,并像Java一样组织它。
 > Workspace > | > |-Src > | |-Package1 > | |-Package2 > | |-main.py > |-Test > |-TestPackage1 > |-TestPackage2 
  1. 随处使用DocString来跟踪一切
  2. 确保相关的__init__.py文件在文件夹中后。 它只是一个from module import class的简单情况