问答

python __main__疑问?

作者:admin 2021-04-18 我要评论

我不是很明白这里的顶层代码执行的作用域名称是什么意思,还有这里的读入我能理解为执行吗? ### __name__ 是一个python内置类属性,存在于每个python模块(也就...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我不是很明白这里的顶层代码执行的作用域名称是什么意思,还有这里的读入我能理解为执行吗?image

###

__name__是一个python内置类属性,存在于每个python模块(也就是每个.py文件)中,代表该模块在运行时的名称。
若是直接运行一个.py文件,该文件的__name__属性就会为__main__。若是被其他模块导入,运行时,就会设定为自身模块的名称(也就是没有.py的文件名)
具体可以通过编写一个文件a.py
里面写上

print(__name__)

然后再同目录下再编写一个b.py
里面写上

import a
print(__name__)

通过分别运行a.pyb.py自行感受。
如此一来,if __name__ == '__main__':的含义也很明确了,在这条if语句下面的代码,只有被单独运行而非被其他模块导入时,才会执行。很多人将if __name__ == '__main__':当成python中的主函数,用以限定某些代码只有在被单独运行这个文件时才会被执行。

###

python的模块系统就像一个小区,每家每户一个独立的名字。但python解释器运行要有一个主入口,类似c语言里的main()函数,它直接翻牌子临幸哪家,哪家的__name__就变成唯一的“__main__”,其他临时召唤过来的只能用自己的名字或外号。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器