Python中”if __name__ == ‘__main__’:”的解析

Python中if __name__ == '__main__':的解析

Python 源代码常会在代码最下方看到形如if name == 'main':的语句,下面介绍其作用。

所有Python模块都有一个内置属性name,其值取决于如何使用模块。

  1. 如果被import,则模块__name__值通常为模块文件名,且不带路径及文件扩展名。
  2. 直接运行,则__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'

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理