Python中的 if __name__ == '__main__' 是什么

Admin 2019-05-21 17:15:36 Python

我们经常在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__'"没有成立,所以下一行代也没运行。

相关文章
最新推荐