Python组织小项目/脚本

Mar*_*ace 3 python

我是python的新手,我不确定一些事情.

  1. 类应该在单独的文件中吗?
  2. 独立脚本是否有主方法?如果是这样,这是如何工作的,因为我有一个不被调用的主要方法
  3. 单元测试目录通常放在哪里,它如何"包含"它正在测试的文件?

Nic*_*lin 5

这里有很多理由可以通过将这些点分成单个问题/查询来提供更好的服务:)

  1. 我反对不必要地将类拆分成单个文件.有些类可能在很大程度上依赖于其他类,我(个人)喜欢将它们保存在同一个文件中.我认为最好的约定是基于功能创建文件,而不是为每个类创建单独的文件.

    我从Pskoo项目如Flask和Jinja2的工作中获得了很多灵感.Jinja2源提供了一个在文件中"捆绑"某些相关类的优秀示例:Github

  2. 独立脚本通常使用类似的东西if __name__ == '__main__'来检查是否直接执行(例如python scriptname.py),然后通常执行一个函数main()(感谢Mike纠正我的错误).

    为了更好地协助解决您main未被调用的问题,我建议您显示您尝试使用的代码.

  3. 有许多不同的方法可以做到这一点,但该公约似乎是在tests,test,testsuite你的项目目录里面.这个问题的后半部分变得非常棘手,因为Python导入的变化取决于Python项目的结构/类型(它是一个Python包吗?一个独立的脚本集合?)和你的PYTHONPATH.

    这个 SO帖子是一个很好的起点,可以考虑考虑在哪里进行测试,虽然一般的答案似乎是"哪里最适合你/你的团队":).

    在一个稍微相关的说明中,我还建议调查Nose测试框架,因为它删除了许多用Python测试的样板.