Python中关于__main__变量的问题
2024-09-06 17:56:10
在Python代码的编写中,经常会用到这么一句:
if __name__ == "__main__": ....
这句代码之前的语句在整个模块被其他文件调用的时候会被运行,而这句代码之后的语句则不会,经过多次的查阅资料,我得出一下的解释:
__name__变量在单独运行此模块(.py文件)时,其表示的内容为”__main__",而当这个模块被其他模块调用时,__name__变量则表示被调用的这个模块的名字(不包含.py这三个字符)。
当模块直接执行的时候,__name__变量="__main__"="__main__",所以此句后边的代码也会被执行。
而当模块被调用的时候,__name__变量="模块名"≠"__main__",所以此句后面的代码不会被执行,得益于此种设定,我们可以自由的划定一个模块内的哪些功能可以被任意调用,哪些功能不能被调用,使用起来更加的方便,因为当我们写出import xxx时,xxx这个模块的内容会被提前加载,若有if __name__ == "__main__",则可以避免全部加载,减少负担(这里的原理是,运行过的py文件会产生一个同名后缀名为pyc的文件,我们知道,Python是一门解释性语言,我们编写好的代码经过解释器解释为计算机可以读懂的二进制语言,这个pyc文件就是不用解释,计算机能够直接运行的文件。
最新文章
- centos FTP服务器的架设和配置
- LINQ简介和LINQ to SQL语句之Where
- Java之hashSet实现引用类型的禁止重复功能
- myeclipse断点调试
- Image控件播放 GIF文件
- yzoi2223集合构造的详细解法
- Kolmogorov复杂性
- Eclipse正确导入第三方project
- SpringMvc处理post请求乱码的filter
- Coursera 机器学习笔记(八)
- 原生Java代码拷贝目录
- 使input文本框不可编辑的3种方法
- JavaScript的sleep实现--Javascript异步编程学习
- SimpleDateFormat中parse和format的区别
- Docker &; ASP.NET Core (3):发布镜像
- selenium跳过webdriver检测并模拟登录淘宝
- jQuery ajax()使用serialize()提交form数据到后台
- Jquery on方法绑定事件后执行多次
- springmvc中为我们做了什么
- c#中的多线程异常 (转载)
热门文章
- dotnet 使用 MessagePack 序列化对象
- oracle中update语句修改多个字段
- Java 学习笔记(9)——java常用类
- 0014 标签显示模式:display(重点)
- Docker Swarm Mode简介与核心概念
- 【题解】P3645 [APIO2015]雅加达的摩天楼(分层图最短路)
- FactoryMethodPattern(工厂方法模式)-----Java/.Net
- 如何解决Selenium句柄、多窗口问题
- 1023 组个最小数 (20 分)C语言
- (一)Django项目架构介绍