python:if __name__ == "__main__"到底是个啥意思

最近才开始学python:

对于Python初学者来说,在看别人代码时经常看到if __name__ == "__main__"

那么这句话到底是什么意思?

解释:

只要你创建了一个模块(一个.py文件),这个模块就有一个内置属性name生成,该模块的 name 的值取决于如何应用这个模块。说人话就是,如果你直接运行该模块,那么__name__ == "__main__"

如果你 import 一个模块,那么模块name 的值通常为模块文件名
 

示例:

创建一个test1.py

def func():
    print('hello python')

if __name__ == "__main__":
    func()

模块中,首先定义了函数func(),用来打印出hello python,

然后判断__name__ 是否等于 __main__,如果等于,有打印,反之则反,现在运行该模块,结果为:

说明__name__ 等于 __main__

如果再创建一个代码test2.py:

import test1

print('bye python')

模块中,首先import test1,然后打印bye python做测试用,运行该模块,结果为:

运行结果仅有bye, world!,说明__name__ 不等于 __main__

结论:

通过上面test1.py和test2.py两个模块,我们现在可以得出一个非常实用的结论: 

如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。

 

通俗的理解也就是_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明');在你自己眼中,你是你自己(_name_ == '_main_')。

if _name_ == '_main_'的意思是:当.py文件被直接运行时,if _name_ == '_main_'之下的代码块将被运行;当.py文件以模块形式被导入时,if _name_ == '_main_'之下的代码块不被运行。

 

参考:

1.https://blog.csdn.net/weixin_35684521/article/details/81396434

2.https://www.cnblogs.com/GGGGGGZX/p/9206806.html

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值