码迷,mamicode.com
首页 > 其他好文 > 详细

if __name__=="__main__

时间:2020-12-05 11:08:46      阅读:9      评论:0      收藏:0      [点我收藏+]

标签:不同   main   不执行   nbsp   width   fonts   const   sso   方法   

在具体说明if __name__ == ‘__main__‘功能前,先从一个简单的实例直观上感受一下 

技术图片

 

 

 

现在运行area.py文件,看结果:

技术图片

 

可以看见,const.py中的train()也被运行了,实际上我们是不希望它被运行,只是想把const.py中 PI 变量导入到 area.py。现在把 const.py 改一下:

技术图片

 

 

运行area.py文件发现没有执行const.py中train()。

技术图片

1. if __name__ == ‘__main__‘功能

丛上述实例可以发现,运行const.py文件时if __name__=="__main__": 语句之前与之后代码都被执行,但作为area.py导入文件时就不会执行if __name__=="__main__": 语句之后代码。

实际上if __name__=="__main__":就相当于是 Python 模拟的程序入口。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个,选中哪个入口程序取决于 __name__ 的值。

可以做一下测试:

技术图片

 

 

技术图片

可以发现,此时变量__name__的值为"__main__",即打印“I‘m test.py”。如果运行其他文件,通过运行的文件调用本文件,则不会打印该语句,因为程序入口不对,该语句不执行。

举个栗子:

技术图片

 

 技术图片

 

 

运行caller.py,结果如下:

技术图片

可以发现receiver.py中if __name__=="__main__"后语句没有执行,因为此时运行的是caller.py,而找不到进去receiver.py的入口!使用这种方法可以控制代码的执行!

 

if __name__=="__main__

标签:不同   main   不执行   nbsp   width   fonts   const   sso   方法   

原文地址:https://www.cnblogs.com/zl-123456/p/14061874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!