if test 多条件_秒懂Python编程中的if __name__ == #39;main#39; 作用和原理

26556f5a9d7b0dcdecd05cedb560ed62.png

在大多数编排得好一点的脚本或者程序里面都有这段

if __name__ == 'main':

1 这段代码的功能

一个python的文件有两种使用的方法:

第一是直接作为脚本执行,

第二是import到其他的python脚本中被调用(模块重用)执行。

因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

如下面test.py代码所示:

print "I'm the first."if __name__=="__main__": print "I'm the second."

并直接执行test.py,结果如下图,可以成功print两行字符串。即,if __name__=="__main__": 语句之前和之后的代码都被执行。

67627ff0d8e2d3392efc50abbe288016.png

然后在同一文件夹新建名称为import_test.py的脚本,只输入如代码:

import test

执行import_test.py脚本,输出结果如下:

98c8a7206d2b192cac055bd64da5553f.png

只输出了第一行字符串。即,if __name__=="__main__": 之前的语句被执行,之后的没有被执行。

2 运行的原理

每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。

而“__main__”等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,__name__ == 'main'结果为真。

同样举例说明,我们在test.py脚本的if __name__=="__main__":之前加入print __name__,即将__name__打印出来,文件内容和结果如下:

a895f2a7d600bc8f8678a2c7cfc6fb96.png

可以看出,此时变量__name__的值为"__main__",再执行import_test.py,模块内容和执行结果如下:

b4e1cda431bc26452d1e621da18610cc.png

此时,test.py中的__name__变量值为test,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

- END -

往期精彩

e675f8b842977052121f0e324b0516f8.png

◆  在家闷坏了吗?计算机仿真程序告诉你,现在还不能出门

◆  过于真实!程序员忙碌的真相

◆  出现这 10 种症状,说明你不适合干程序员

f287ae81e441c77a4b00e2a060d095af.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python背景颜色怎么随机_Python中的随机颜色

我同意TigerhawkT3&#xff08;1&#xff09;你教授对pick_color()的实现是垃圾。但我不认为random.choice()&#xff0c;或者你教授滥用random.shuffle()的方式是最好的选择。两者的问题是&#xff0c;在连续调用时可以获得相同的颜色&#xff0c;这是在正方形内绘制正方形时不…

python 解决手机拍的书籍图片发灰的问题

老师给发的作业经常是手机拍的&#xff0c;而不是扫描&#xff0c;背景发灰&#xff0c;如果二次打印就没有看了&#xff0c;象这样&#xff1a; 如果使用photoshop 处理&#xff0c;有些地方还是扣不干净&#xff0c;不如python 做的好&#xff0c;处理后如下&#xff1a; 具体…

2016年cypher资源_2021-2027年中国鱿鱼行业市场供需规模及未来前景分析报告

报告类型&#xff1a;产业研究报告格式&#xff1a;电子版、纸介版、电子纸介出品单位&#xff1a;智研咨询官网链接&#xff1a;中国产业信息网 - 产业前景投资趋势门户-智研旗下产业信息咨询平台​www.chyxx.com报告链接&#xff1a;2021-2027年中国鱿鱼行业市场供需规模及未…

地面控制点的定义与作用_什么是地面塌陷

地面塌陷2020年1月13日&#xff0c;青海西宁市城中区一公交车站附近地面突然塌陷&#xff0c;一辆搭载乘客的公交车掉入坑中&#xff0c;致使9人遇难。2019年12月12日&#xff0c;厦门吕厝路口地铁1号线和2号线外的配套物业开发项目施工现场发生约500平方米地面塌陷&#xff0c…

animate动画案例_animate动画案例——小小购物狂

如今各平台小动画层出不穷&#xff0c;大部分这种二维动画都是animate或者flash做的&#xff0c;例如下面这种效果animate既可以将各种内容做成动画。既可以设计适合游戏、电视节目和 Web 的交互式动画。让卡通和横幅广告栩栩如生。也可以用来创作动画涂鸦和头像。并向电子学习…

男孩子不上学了学计算机要学历吗,十三岁男孩不上学,能学什么手艺?

十三岁男孩不上学,能学什么手艺?十三岁时的孩子,有些学校要求我们先上过义务教育再去学习,有些学校是允许十三岁就直接接受教育的,有些学校是对十三岁还在上半学的学生进行补习一下的。那么,十三岁男孩不上学,可以学什么手艺?其实,有很多孩子对自己在学校学习时未能掌握的知识…

numpy 拼接_数据分析-numpy的拼接与交换

1.数组的拼接import numpy as npt1np.arange(24).reshape((4,6))t2np.arange(100,124).reshape((4,6))print(t1)print("*"*50)print(t2)print("*"*50)#竖直拼接t3np.vstack((t1,t2))print(t3)print("*"*50)#水平拼接t4np.hstack((t1,t2))print(t…

iptables 指定网卡_LINUX系统下的IPTABLES防火墙系统讲解(二)实战操作

iptables数据流方向iptables操作命令:#iptables --helpUsage: iptables -[AD] chain rule-specification [options]iptables -[RI] chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LFZ] [chain] [options]iptables -[NX] chainipta…

java接口文档生成工具_接口文档生成

一、为什么要写接口文档&#xff1f;1.正规的团队合作或者是项目对接&#xff0c;接口文档是非常重要的&#xff0c;一般接口文档都是通过开发人员写的。一个工整的文档显得是非重要。2.项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发&#xff0c;项目维护中或者…

联想计算机如何设置用户名和密码忘了,联想(Lenovo)路由器无线wifi密码忘记了怎么办啊?...

联想(Lenovo)路由器无线wifi密码忘记了怎么办&#xff1f;忘记wifi密码这个问题&#xff0c;很多用户都会遇到。因为手机、笔记本、平板电脑在首次连接wifi信号后&#xff0c;会自动保存该wifi信号密码&#xff0c;以后会自动进行连接&#xff0c;无需用户手动输入wifi密码&…

mysql binlog查看_MySQL--17 配置binlog-server 及中间件

配置binlog-server修改mha配置文件[rootmysql-db03 ~]# vim /etc/mha/app1.cnf[binlog1]no_master1hostname10.0.0.53master_binlog_dir/data/mysql/binlog/备份binlog#创建备份binlog目录[rootmysql-db03 ~]# mkdir -p /data/mysql/binlog/#进入该目录[rootmysql-db03 ~]# cd …

桥梁在线计算机监测系统,桥梁在线监测系统

原标题&#xff1a;桥梁在线监测系统监测背景我国是个桥梁大国&#xff0c;据最新数据统计&#xff0c;我国超过100万座公路桥梁(不含市政桥梁)。影响桥梁的因素居多&#xff0c;人为因素、车辆长期超载、材料自身退化等&#xff0c;缺乏及时到位的管理养护导致结构各部分在远没…

idea黑色好还是白色好_白色牛仔裤,好看又好搭

白色是属于夏天的颜色&#xff0c;也是最纯洁、最惹人注目的颜色。无论时尚如何轮回迭代&#xff0c;白色给我们的代名词永远是优雅、高贵、纯洁、干净、高贵、永恒等这些美好的词汇。白色是时光、流动、轻巧的颜色&#xff0c;它代表着东方的安静和中庸&#xff0c;也是留白含…

c 子类对象 访问父类对象受保护成员_面向对象编程(OOP)

这节讲一下&#xff0c;什么是面向对象(Object Oriented Programming)。说面向对象之前&#xff0c;我们不得不提的是面向过程(Process Oriented Programming)&#xff0c;C语言就是面向过程的语言&#xff0c;这两者的区别在哪呢&#xff1f;我们可以设想一个情景——厨房做菜…

linux数据泵导入command not found_MySQL:数据库结构优化、高可用架构设计、数据库索引优化...

一、SQL查询优化(重要)1.1 获取有性能问题SQL的三种方式通过用户反馈获取存在性能问题的SQL&#xff1b;通过慢查日志获取存在性能问题的SQL&#xff1b;实时获取存在性能问题的SQL&#xff1b;1.1.2 慢查日志分析工具相关配置参数&#xff1a;slow_query_log # 启动停止记录慢…

武汉船舶职业技术学院计算机分数线,武汉船舶职业技术学院录取分数线2021是多少分(附历年录取分数线)...

武汉船舶职业技术学院录取分数线2020是多少分&#xff0c;各专业录取分数线是多少&#xff0c;是每个填报武汉船舶职业技术学院的考生最关注的问题&#xff0c;随着各省高考录取批次相继公布&#xff0c;考生也开始关心是否被录取&#xff0c;本站小编整理相关信息供参考&#…

linux std::queue 怎么释放内存_电脑卡慢怎么办?一个小工具帮你轻松释放内存,瞬间提升电脑性能...

有一种电脑叫“卡巴死机”大家有没有发现&#xff0c;如今的电子产品越来越不耐用了。无论是电脑&#xff0c;还是手机&#xff0c;超过一年以上&#xff0c;就得考虑更换了。1G变2G&#xff0c;2G升4G&#xff0c;按理说电脑应该会更快更好&#xff0c;实际却是相反&#xff0…

2015计算机二级公共基础知识,2015年计算机二级公共基础知识考点测试题(8)

排序技术1[单选题]对长度n的线性表排序&#xff0c;在最坏情况下&#xff0c;比较次数不是n(n一1)/2的排序方法是(  )。参考答案&#xff1a;D参考解析&#xff1a;排序技术有&#xff1a;①交换类排序法(冒泡排序法、快速排序法);②插入类排序法(简单插入排序、希尔排序);③…

2020年周数和日期对应表_2020年雅思考试报名截止日期、准考证打印日期和成绩单寄送日期...

2020年雅思考试报名截止日期、准考证打印日期和成绩单寄送日期考试日期类别口试预定 开始日期*报名截止日期准考证 打印日期成绩单 寄送日期*04/01/2020A14/12/201916/12/201925/12/201917/01/202011/01/2020A&#xff0b;G21/12/201923/12/201901/01/202031/01/202016/01/2020…

飞行摇杆设置_HORI皇牌空战7最新飞行摇杆抢先开箱 设计出色布局合理

《皇牌空战7》即将于1月17日发售PS4/Xbox One版&#xff0c;2月1日发售PC版。近日&#xff0c;我们在本作发售之前收到了HORI为《皇牌空战7》量身设计制造的最新一代飞行摇杆。随着《皇牌空战7》即将到来&#xff0c;我们在此为大家做一个简单的先行开箱评测介绍&#xff0c;为…