Python组织小型项目/脚本
我对python非常陌生,对一些事情不确定Python组织小型项目/脚本,python,Python,我对python非常陌生,对一些事情不确定 类应该在单独的文件中吗 独立脚本是否有主方法?如果是这样的话,这是如何工作的,因为我有一个没有被调用的main方法 单元测试目录通常放在哪里?它如何“包含”正在测试的文件 这里有很多内容要讲,把这些问题分成单独的问题/疑问可能会更好:) 我会抵制不必要地将类拆分为单个文件。有些类可能严重依赖于其他类,我(个人)喜欢将它们保存在同一个文件中。我觉得最好的约定是基于功能创建文件,而不是为每个类创建单独的文件 我从Flask和Jinja2等Pocoo项目中获
这里有很多内容要讲,把这些问题分成单独的问题/疑问可能会更好:)
if uuuu name uuuu='uuu main uuu'
之类的东西来检查是否直接执行(例如python scriptname.py
),然后执行一个函数,通常是main()
(感谢Mike纠正了我的错误)
为了更好地帮助您解决main
未被调用的问题,我建议显示您尝试使用的代码tests
,test
,testsuite
目录中。这个问题的后一部分变得相当棘手,因为Python导入根据Python项目的结构/类型(是Python包吗?脚本的独立集合?)和PYTHONPATH
而有所不同
因此,在考虑将测试放在何处时,post是一个很好的起点,尽管一般的答案似乎是“哪里最适合你/你的团队”:
稍微相关的一点是,我还建议研究一下测试框架,因为它从Python测试中删除了很多样板文件我将回答问题1和2 1) 这要看情况。如果您的类很小,那么可以将它们放在同一个文件中。如果它们变得很大,通常会保存在单独的文件中。
2) 不,不需要有主方法。然而,对于脚本来说,这是一个非常常见的习语:
def main():
# Your code
# At the bottom of the file
if __name__ == '__main__':
main()
这样,您的main
仅在文件作为脚本运行时才会运行,但在作为模块导入时不会运行。当您导入模块时,Python将只执行它在函数中没有遇到的任何代码,因此如果您以后想将脚本作为模块重用,这将为您提供保护
这只是一个习语,main
在python中没有特殊意义,因此您不必调用它或其他任何东西
import directoryname.module.
导入它们。您可以通过从directoryname.module导入ClassName导入类第一个是个人偏好,不像Java,我认为Java是必需的,在python中它不是。但从我所看到的情况来看,大多数人把他们所有的类放在一个文件中,只是为了简化导入。我宁愿导入一件东西并让
导入类
,而不是导入类1、类2、类3
。第2个是你想要的。通常,人们会在python文件的末尾添加,如果双击或从命令promptIt加载它,就会导致它运行go()
,而不是\uu main
方法。习惯用法是如果uuu name uuu=='uuu main uuu'
那么调用我经常调用的函数main()
@MikeMüller谢谢你的更正,mike,我已经把它合并到我的答案中了。