__name__的取值说明

模块是什么

一个.py文件,就是一个模块

模块名是什么

一个.py文件的名字,就是模块名

__name__是什么

__name__模块内置变量

它是一个变量,就是说,它是会变化的。

它怎么变化呢,取决于,这个模块的导入方式

模块的导入方式有几种?

10种,具体可以参考这篇文章

  • 1、直接运行模块,那么模块就是主程序
  • 2、常规导入,也叫绝对导入
  • 3、包内导入,也叫相对导入
  • 4、动态导入,也叫运行时导入
  • 5、作为命名空间包的一部分导入。
  • 6、从__main__模块导入(特殊场景)
  • 7、使用-m参数执行模块
  • 8、通过sys.path临时添加路径导入
  • 9、嵌套导入,模块内部再导入其他模块
  • 10、循环导入(应该避免)

__name__的取值

我们呢,总结一下,模块不管是怎么导入,不管上面10种情况怎么变化,始终是有两种状态。

  • 被执行:__name__的取值就是__main__
  • 被导入:__name__的取值就是模块完整路径

所以,__name__可以看作是模块完整路径

__name__是模块内置变量,它的取值是变化的,是根据模块的使用状态变化的。

模块的使用状态只有两种,一种叫做被执行,一种叫做被导入

如果模块是被执行的,那么__name__的取值就是__main__

如果模块是被导入的,那么__name__的取值就是模块完整路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值