简单来讲,若是是模块自己做为脚本运行时,这个if以后的语句能够执行,若是该模块A被import到别的模块B中,运行模块B的时候A模块中的if __name__ == '__main__' 的语句将不会执行。html
咱们能够从具体的例子来看:post
#my_math.py
def product(x, y): if x == 7 and y ==9: return 'An insidious bug has surfaced!' return x * y print(__name__)
直接运行my_math.py,将输出:spa
__main__
而后咱们有另外一个模块learning.py将my_math import进去:code
#learning.py import my_math print(__name__) print(my_math.__name__)
而后运行learning.py,将会输出:htm
__main__ my_math
总结:当模块做为脚本直接运行时,__name__的值是__main__, 可是若是被import到别的模块中运行时,__name__的值是它本身的名字,如本例为my_mathblog
参考文献:io
http://www.dengfeilong.com/post/60.htmlclass