python中模块名字和__name__属性

转:https://blog.csdn.net/ambercctv/article/details/75105628

https://www.cnblogs.com/1204guo/p/7966461.html

在python中以文件的方式来组织模块,一个模块就是一个以.py结尾的文本文件文件的名字就是模块的名字。在模块中定义的变量和函数可以被其它的模块或主程序调用(imported),每一个模块都有一个内置的字符串变量__name__,当模块是被import时,__name__被设置成模块名(文件名),然而当模块在命令行被执行时__name__被设置成__main__。使用print(__name__)可以显著看到这个区别。

__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等

1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为’__main__’

1 #Py1.py

2 #Py2.py

执行结果:

通过结果可以知道,Py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。
 

猜你喜欢

转载自blog.csdn.net/weixin_42205776/article/details/88966985