python3 __mian和__name__的区别

1、新建 test.py 模块:

def  GetModuleName():
    print('__name__ = ', __name__)

def PrintName():
    print('PrintName:', 'Andy')

if __name__ == '__main__':
    GetModuleName()
    PrintName()

运行结果:

__name__ =  __main__
PrintName: Andy

2、新建 Demo.py 模块 

import  test
def Demo():
  print('__name__ = ',__name__)

if __name__ == '__main__':
    Demo()
    print('test.py __name__ = ',test.__name__)

输出:

__name__ =  __main__
test.py __name__ =  test

总结:

1、__name__是一个系统变量,用来标识模块的名字。

2、__name__ == '__main__'的意思:

     a) 当 python 文件被直接运行的时候,__name__的值为’__main__’  ,

         if __name__ == '__main__' 之下的代码将被运行。

     b) 当 python 文件以模块形式被导入时,__name__的值为该模块名字

         if __name__ == '__main__' 之下的代码块不被运行。

通过这个特性可以在if语句里面添加测试代码,可以提高减少bug,提高程序的可行性。

原文地址:https://www.cnblogs.com/AndyChen2015/p/11412889.html