月度归档: 2017 年 6 月

  • 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'