Python中if __name__ == ‘__main__‘:的作用和原理的理解与感悟(笔记自用)

参考来源:Python中if __name__ == ‘__main__‘:的作用和原理_python if-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/heqiang525/article/details/89879056

两种理解

if __name__ == "__main__": 这句话就是作为一个条件限制吧,这句话以下的代码只有在运行的这个.py文件的时候才会执行,当作为模块在别的.py文件中调用的时候,本.py文件中这句话下面的代码不会执行。

  •  __name__ 是个变量,每个 .py文件都有这个变量。 ‘__main__ ’ 是个普通的字串,不是变量,但可以作为变量的值。
  • 变量__name__的值会在它所属于的 .py 文件被其他 .py 文件调用时(位置变化了)而发生变化,即变量__name__所在的 .py 文件没被别的 .py 文件调用时,其值是:‘__main__ ’ ,但变量__name__所属的 .py 文件被别的 .py 文件调用时,它的值就不是 ‘__main__ ’ 了,而变成了它所在 .py的文件名,其中的道理是:变量__name__所属的 .py 在被其他 .py 调用时,形成了一个嵌套关系,只有最外层的 .py (也就是调用者)才有资格将 ‘__main__ ’ 赋值给自己的 变量__name__,而作为内层的.py 它的变量__name__就不能拥有 ‘__main__ ’ ,但也不能空着,所以就只好将自己的 .py文件名给它自己的__name__了,这么做的好处是,一个.py 程序里如果 引用了多个 .py程序,就可以通过每个 .py程序的 变量__name__ 来区分它们了。

总结:

_name_是当前模块名,当模块被直接运行时模块名为_main__。当模块被直接运行时,代码将被运行,当模块是被导入时,代码不被运行。

这篇讲得更好一点

彻底理解python中的 if __name__ == '__main__':-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/chen1415886044/article/details/104855539

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值