好吧,如果您这样做:
# your pre
然后
import your_module将执行您的代码。相反,与此:
if __name__ == '__main__': # your pre
导入将不会运行代码,但会将解释器定位到该文件。
如果脚本要运行的唯一方法是手动打开解释器,则完全没有区别。
当您拥有一个库(或重用脚本中的定义)时,这一点很重要。
将代码添加到定义之外的库中,或者
if __name__
在导入时在运行保护范围之外添加代码,从而使您可以初始化库所需的内容。也许您希望您的库还具有一些可运行的功能。也许进行测试,或者类似Python的SimpleHTTPServer(它带有一些类,但是您也可以运行模块,它将启动服务器)。您可以在
if __name__
子句中具有双重行为。诸如
epydoc
导入模块之类的工具可以访问文档字符串,因此仅在生成HTML文档时运行代码并不是真正的意图。



