Python基础:__name__浅析

从转Python开始就经常见到Python主函数的写法

if __name__ == "__main__":

不过以前都是一带而过
只当是特定的写法
别人怎么写我就怎么写咯
不过今天突然有点好奇
于是写了几个Module对__name__的作用进行了一些验证

Independent Module

print("independent module: __name__ ==", __name__)

作为一个独立Module运行时输出结果是
在这里插入图片描述

Sub Module

def nameTest():
    print(__name__)


if __name__ == "__main__":
    print("run as independent module,__name__ ==")
    nameTest()

作为独立Module运行时
在这里插入图片描述然后写一个父模块调用这个子模块

Ancestor Module

import SubModule
if __name__ == "__main__":
    SubModule.nameTest()

在这里插入图片描述
如果换一种导入方式

from __name__test import SubModule
if __name__ == "__main__":
    SubModule.nameTest()

在这里插入图片描述

加一个别名定义试试

from __name__test import SubModule as SM
if __name__ == "__main__":
    SM.nameTest()

在这里插入图片描述
并没有变化

总结

  1. __name__属性是模块自带的变量
  2. 当模块独立运行时,其值为"__main__",当被其他模块引用时
    其值为"模块名""包名.模块名"
  3. 别名的使用并不会影响__name__的值
发布了61 篇原创文章 · 获赞 11 · 访问量 4876

猜你喜欢

转载自blog.csdn.net/weixin_43249758/article/details/103673510