__name__='main' 这句代码是什么意思?《读书笔记》
当我们阅读 别人的python代码都会有 if name == "main"这么一行语句,但却不知道为什么要写这个?有什么用
想知道这段代码什么意思让我们来根据例子来测试一下

我们运行一下看看效果:

单独运行是没有问题的,但在另一个文件中(py01.py)导入后运行就会出现问题

python把模块(py02.py)的测试函数也一块执行了,而这并不是我们想要的。为了避免这种情况的关键在于:让python知道该模块是作为程序运行还是导入到其他程序中。为了实现这一点,需要使用模块的__name__属性:

作为程序运行的时候,__name__属性的值是'main', 而作为模块的时候,这个值就是模块的名字了。因此,你就不难理解ifname == "main__" 这句代码的意思了

这次当我们在运行(py01.py)的时候就不见测试代码了!只有我们单独运行py02.py时才能执行test函数

__name__='main' 这句代码是什么意思?《读书笔记》的更多相关文章
- 《代码大全2》读书笔记 week 7
博主终于继续更<代码大全2>了 (*´・ω・`)⊃,课上老师一再强调读书笔记要写出自己的心得不能简单摘抄,所以我现在基本上只会写一下自己在阅读过程中印象深刻或者有发散思考的地方,字数可能 ...
- 《代码大全2》读书笔记 Week8
这一周博主阅读了<代码大全2>第11章至第13章,第三部分——"变量"就结束了,第四部分作者将转入语句的讨论. 第十一章作者详细阐述了变量名的有效命名规则,第十二和十三 ...
- 代码整洁之道读书笔记(Ch4-Ch7)
这几章从注释.程序格式.对象与数据结构的规范以及错误处理四个方面介绍了如何使代码变得简洁易懂.不同于上次摘抄的方法,这一次我会结合第一次个人作业的代码进行分析. 第四章 注释 这一章告诉我们,好的注 ...
- 『重构--改善既有代码的设计』读书笔记----Extract Method
在编程中,比较忌讳的一件事情就是长函数.因为长函数代表了你这段代码不能很好的复用以及内部可能出现很多别的地方的重复代码,而且这段长函数内部的处理逻辑你也不能很好的看清楚.因此,今天重构第一个手法就是处 ...
- $《第一行代码:Android》读书笔记——第2章 Activity
(一)创建活动 1.创建活动类 创建没有Activity的项目,发现src文件夹是空的,手动创建一个包com.jyj.demo1,在包中添加一个名为MainActivity的class,该MainAc ...
- $《第一行代码:Android》读书笔记——第5章 Broadcast
(一)广播机制简介 1.Android广播的分类: 如图所示: 2.发送广播:使用Intent:接收广播:Broadcast Receiver. (二)接收系统广播 1.动态注册监听网络变化 示例程序 ...
- $《第一行代码:Android》读书笔记——第6章 数据持久化
主要讲述了Android数据持久化的三种方式:文件存储.SharedPreference存储.SQLite数据库存储. (一)文件存储 其实Android中文件存储方式和Java的文件操作类似,就是用 ...
- 《代码的未来》读书笔记:内存管理与GC那点事儿
一.内存是有限的 近年来,我们的电脑内存都有好几个GB,也许你的电脑是4G,他的电脑是8G,公司服务器内存是32G或者64G.但是,无论内存容量有多大,总归不是无限的.实际上,随着内存容量的增加,软件 ...
- <<软技能,代码之外的生存技能>>读书笔记
管理 1. 制定大目标,再分解成小目标,定时反思自己的长期和短期的成果 2. 人都希望自己很重要, 要让下属有存在感,让他们做事有成就感 3. 奖励积极比惩罚消极更有用 4. 学会换位思考,不要用&q ...
随机推荐
- css中相对定位和绝对定位
相对定位: #box_relative { position: relative; left: 30px; top: 20px; } 绝对定位: #box_relative { position: a ...
- 写10个简单的 linux 命令?
mkdir 创建文件夹rmdir 删除文件夹rm 删除文件 mv 移动文件cp 拷贝文件cat 查看文件 tail 查看文件尾部more 分页查看文件cd 切换当前目录 ls 列出文件清单reboot ...
- Linux-ubuntu命令-文件、磁盘管理
.文件管理 <1>查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令. Linux文件或者目录名称最长可以有26 ...
- python threading.current_thread().name和.getName()有什么区别
今天学到python多线程这块,想显示当前线程是主线程还是子线程.网上一搜,有个方法叫 threading.current().name 定海偶然 但是发现,同样的threading.current_ ...
- Linux安装和配置java
安装文件:jdk-6u45-linux-x64.bin 1.root用户在/usr/local目录下建立java目录 2.拷贝jdk-6u45-linux-x64.bin到/usr/local/jav ...
- 我非要捅穿这 Neutron(三)架构分析与代码实现篇(基于 OpenStack Rocky)
目录 文章目录 目录 Neutron 的软件架构分析与实现 Neutron Server 启动流程 获取 WSGI Application Core API & Extension API C ...
- Java不可变序列String和可变序列StringBuilder、StringBuffer
String String变量是不可变的,源码里面用了final修饰. private final char value[]; String str = "Hello"; Syst ...
- reactstrap,scrollbar组件
react-script 编译,部署,sass,less,test,helmet等 https://github.com/facebookincubator/create-react-app/blob ...
- [JS] 点击按钮触发后台事件前,弹出确认框
只需要在button中设置onclick属性触发事件即可 下面以ASP.NET代码为例, ASP.NET中按钮客户端触发js代码的属性是OnClientClick <asp:Button ID= ...
- c++ xml 解析“后直接跟值问题
c++ xml库相关 要解析内容: <ITEM name="SLSJ"head="SLSJ"/> 代码: GetNodeAttri(subnodes ...