我该如何组织Python源代码?

时间:2009-12-04 20:00:53

标签: python unit-testing code-organization

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

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

我的具体问题包括:

  1. 每个班级应该在一个单独的档案中吗?
  2. 我应该如何组织与源代码相关的单元测试?
  3. 我应该在哪里放置文档注释,特别是那些用于命令行操作的注释?
  4. 如果我使用多个目录,如何在它们之间导入类?
  5. 我可以通过反复试验得出我自己的一些结论,但我宁愿从 good 开始。

2 个答案:

答案 0 :(得分:26)

article Eric pointed很棒,因为它涵盖了组织大型Python代码库的细节。

如果您已经从Google登陆并尝试了解如何将一个大型源文件拆分为多个更易于管理的文件,我将简要总结一下这个过程。

假设您目前拥有名为main.py的文件中的所有内容:

  • 在同一个文件夹中创建另一个源文件(让我们为此示例调用我们的utils.py
  • 将您需要的任何类别,功能,陈述等移至main.py
  • utils.py中,在顶部添加一行:main.py

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

答案 1 :(得分:5)

组织代码和测试的方式与任何OO语言完全相同。

从我的方式回答。这可能不对,但对我有用

  1. 取决于您的功能如何分割。对于我的主要python应用程序,我有1个文件,其中包含入口点的类,然后包含不同功能的包
  2. 我使用PyDev进行eclipse并像Java一样组织它。
  3. >  Workspace
    >     |
    >     |-Src
    >     |   |-Package1
    >     |   |-Package2
    >     |   |-main.py
    >     |-Test
    >         |-TestPackage1
    >         |-TestPackage2
    
    1. 在任何地方使用DocString来跟踪所有内容
    2. 确保相关的__init__.py文件位于文件夹中。它只是一个from module import class
    3. 的简单案例