Python中if __name__ == '__main__':
的解析
Python 源代码常会在代码最下方看到形如if name == 'main':
的语句,下面介绍其作用。
所有Python模块都有一个内置属性name
,其值取决于如何使用模块。
- 如果被
import
,则模块__name__
值通常为模块文件名,且不带路径及文件扩展名。 - 直接运行,则
__name__
值为__main__
。
所以,if name == 'main'
用来判断该模块的使用方式。
如:
class UsageTest:
def __init(self):
pass
def f(self):
print('Hello, World!')
if __name__ == '__main__':
UsageTest().f()
在终端直接运行:
$ python UsageTest.py
Hello, World!
import 方式:
$ python
>>>import UsageTest
>>>UsageTest.__name__ # Test模块的__name__
'UsageTest'
>>>__name__ # 当前程序的__name__
'__main__'