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,提高程序的可行性。