刚刚开始使用Python的时候看到有很多人写程序的时候最后都会加上个if __name__="__main__"判断语句,一开始不太理解,为了让更多的初学者更透彻的理解Python,这里说下这个判断语句的作用。
这条if语句的作用是,允许程序员要么将模块当做一个独立的程序运行,要么从shell或另外一个模块导入它。其工作方式如下。每个Python模块都包含一组内建的模块变量。当加载该模块的时候,Python虚拟机会自动为这些变量赋值。
如果该模块是作为一个独立的程序加载(要么通过一个终端提示符运行它,要么从IDLE窗口加载它),该模块的__name__变量会被设置成"__main__"。否则,这个变量会被设置成模块的名称。不管怎样该模块的变量都会在模块中的任何代码加载之前完成。因此,当执行到模块末尾的if语句的时候,只要当模块是作为一个独立的程序启动时,才会调用模块中的main函数。
当开发独立的程序模块的时候,if __name__="__main__"的习惯用法很有用,因为它允许程序员只要将模块导入到shell中就可以看到相关帮助。同样,程序员可以再IDLE中进行模块开发的时候,在支持的模块中使用这一方法对模块进行测试。