参考文献:
http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html
http://bbs.csdn.net/topics/320265093
转载请附上以上链接。
文献1:
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.
模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。
///////////////////////////////////////////////////////////////////////////////////////////////////
在cmd 中直接运行.py文件,则__name__的值是'__main__';
而在import 一个.py文件后,__name__的值就不是'__main__'了;
从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件
详细例子,点击文献1.
文献2:
你运行当前脚本,就会执行if __name__=="__main__"下的函数,如果你是当模块被其他程序import的,那么就不会执行。主要是测试用,测试你写的这个模块有没有实现你想要的功能。
一般来说python写的文件既可以运行,也可以作为模块来被其他程序调用。
当程序是自身运行时,其__name__的值就是字符串"__main__"了,如果是被其他程序调用,那么它的__name__的值就不是字符串"__main__",使用下面这个判断的作用就是使程序只有在自身被运行的情况下才执行,如果只是被调用,那么就不运行了。
例如,有一个python程序是main.py,代码如下:
1 def run(): 2 print "你好,世界!" 3 4 if __name__=="__main__": 5 run()
当你双击main.py时,那么这个程序就会运行了——因为它的__name__的值为"__main__"。
当你在其它程序中调用这个main.py文件,例如use.py:
1 import main.py #此处把前面的main.py作为模块调用 2 3 if __name__=="__main__": 4 main.run() #调用main.py中的run()函数!