我应该在简单的Python脚本中使用main()方法吗?
我应该在简单的Python脚本中使用main()方法吗?
我有很多简单的脚本,用于计算一些内容。它们仅由一个模块组成。
我应该为它们编写主方法并使用if __name__
构造来调用它们,还是直接把它们全部倒入到一个模块中?
每种方法都有哪些优势?
admin 更改状态以发布 2023年5月22日
如果您这样做:
# your code
那么 import your_module
将执行您的代码。相反,如果这样做:
if __name__ == '__main__': # your code
导入不会运行代码,但针对该文件的解释器会运行代码。
如果脚本只能通过手动打开解释器来运行,那么没有任何区别。
当您有一个库时(或者重复使用脚本中的定义),这一点变得重要。
-
在定义之外或没有
if __name__
保护的库中添加代码时,导入时运行代码,让您初始化库需要的一些东西。 -
也许您希望您的库也具有一些可运行的功能。也许是测试,或者类似于 Python 的 SimpleHTTPServer(它提供一些类,但是您也可以运行模块并启动服务器)。您可以使用
if __name__
语句拥有双重行为。 -
像
epydoc
这样的工具导入模块以访问 docstrings,因此当您仅想生成 HTML 文档时运行代码不是真正的意图。