首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python组织小型项目/脚本

Python组织小型项目/脚本
EN

Stack Overflow用户
提问于 2013-05-31 21:33:42
回答 3查看 200关注 0票数 3

我对python非常陌生,对一些事情不确定。

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

回答 3

Stack Overflow用户

发布于 2013-05-31 21:45:06

在这里有很多需要讨论的地方,最好将这些问题分成单独的问题/查询:)

  1. 我会抵制不必要地将类分割成单独的文件。有些类可能严重依赖其他类,而我(个人)喜欢将它们保存在同一个文件中。我认为最好的约定是根据功能创建文件,而不是为每个类创建一个单独的文件。 我从Pocoo项目(如烧瓶和Jinja2 )中获得了很多灵感。Jinja2源代码提供了一个在文件中“捆绑”某些相关类的优秀示例:Github
  2. 独立脚本通常使用类似于if __name__ == '__main__'的方法来检查是否直接执行(例如python scriptname.py),然后执行一个函数--通常是main() (感谢迈克纠正了我的错误)--.To更好地帮助解决了main未被调用的问题,我建议显示您试图使用的代码。
  3. 这样做有很多不同的方法,但是约定似乎在项目中的teststesttestsuite目录中。这个问题的后半部分非常棘手,因为Python导入取决于Python项目的结构/类型(它是Python包吗?一个独立的脚本集合?)还有你的PYTHONPATH。 在考虑将测试放在哪里方面,post是一个很好的起点,尽管一般的答案似乎是“您/您的团队最适合的地方”:)。 另外,我还建议研究一下鼻子测试框架,因为它从使用Python的测试中删除了大量的样板。
票数 5
EN

Stack Overflow用户

发布于 2013-05-31 21:47:38

我将回答问题1和问题2。

1)视情况而定。如果您的类很小,那么将它们放在同一个文件中是可以的。如果它们变大了,它们通常被保存在单独的文件中。

2)不,没有必要有一个主要的方法。然而,对于一个脚本来说,这是一个非常常见的成语:

代码语言:javascript
复制
def main():
    # Your code

# At the bottom of the file
if __name__ == '__main__':
    main()

这样,您的main只能在文件作为脚本运行时才能运行,而在作为模块导入时不会运行。在导入模块时,Python只会执行它在函数中遇到的任何代码,因此,如果以后希望将脚本作为模块重用,这将保护您。

这只是一个成语,main在python中没有特殊的意义,所以您不必调用它或任何东西。

票数 2
EN

Stack Overflow用户

发布于 2013-05-31 21:59:42

  1. 不必这样做,但如果该类被其他几个文件/类使用,则应该这样做。
  2. 这是一个很好的实践参见What does do?
  3. Python查看$PYTHONPATH,它是要在其中查找模块的目录列表。您可以将模块放在其中一个目录的子目录中,并使用import directoryname.module.导入它们。您可以通过from directoryname.module import ClassName导入一个类。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16866344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档