我们经常在Python代码中看到 if __name__ == '__main__' :这代表什么呢?
Python中模块即对象,并且所有的模块都有一个内置属性 __name__,一个模块的__name__的值取决于您如何应用模块,如果 import一个模块,那么模块__name__ 的值通常为模块文件名(不带路径或者文件扩展名),但也可以像一个标准的程序那样直接运行模块,在这种情况下__name__的值将是一个缺省"__main__"。换句话说在command中运行.py文件则__name__的值是'__main__',而在import一个.py文件后__name__的值不是'__main__'了,从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件。
[root@ python]# cat stat.py
#!/usr/bin/env python
import sys
def main():
print "You system is {0}".format(sys.platform)
if __name__ == '__main__':
main()
[root@ python]# python stat.py
You system is darwin
判断"__name__ == '__main__'"是成立的。
[root@ python]# python
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> __name__ #当前程序的__name__
'__main__'
>>> import stat
>>> stat.__name__ # stat 模块的__name__
'stat'
>>>
判断"__name__ == '__main__'"没有成立,所以下一行代也没运行。