当你编写一些自给自足的脚本时,使用 if __name__ == '__main__'
作为编写测试的位置是个坏主意吗?
当你编写一些自给自足的脚本时,使用 if __name__ == '__main__'
作为编写测试的位置是个坏主意吗?
这取决于您的代码和脚本目的。对于大型和复杂的项目,您肯定需要将所有测试放在单独的位置。
但是,在处理小型项目时,将测试与代码放在一起可能是一个好的解决方案 - 这是doctest
的主要思想(它是一个很棒的Python模块,允许您在docstrings中编写测试)。在这种情况下,您的if __name__ == '__main__'
将如下所示:
if __name__ == "__main__":
import doctest
doctest.testmod()
测试逻辑和测试用例永远不应该成为“生产”代码的一部分(生产可以指您使用的代码,向客户发布的代码等)。因此,在脚本中任何位置都不应该包含它们。
理想情况下,应将它们放在单独的文件中。
我猜不是,事实上,我看到很多用Python编写的脚本(大多是另一个应用程序的插件)都是这样写的。