首先用最简洁的语言来说明一下 if __name__ == '__main__':的作用:防止在被其他文件导入时显示多余的程序主体部分。

先举个例子,如果不用 if __name__ == '__main__': 会发生什么事:

首先在yy.py中调用cs.py

#yy.py

import cs

print('引用cs')

cs.cs()

print('程序结束!')

cs.py文件如下

#cs.py

def cs():

print('一打开cs!')

print('cs主函数!')

运行结果会是:

cs主函数!

引用cs

一打开cs!

程序结束!

分析:也就是说,如果你的目的只是调用cs.py中的cs()函数,那么你在导入的时候就不要使用import cs

因为一旦你使用了import cs

那么在运行至这一句导入代码时会自动运行一次cs.py,cs.py中的函数被封装不会被直接运行,但是cs.py中有没被封装的语句:

print('cs主函数!')

因此,这一句就会被多余地运行,哪怕你完全不需要这一句,你的目的只是调用cs.py中的cs()函数

就算是使用

from cs import cs

运行结果还是一样。

那么怎么才能避免运行不需要的代码段呢?那就把不需要的代码段也当成函数运行,但是这个函数有点特殊,他要区分是自身运行还是被调用导入而运行,如果是自身运行那么就把那些代码段显示出来,如果被调用就屏蔽掉。

于是 if __name__ == '__main__':便应运而生

我们修改一下代码

只修改一下cs.py的代码:

def cs():

print('已打开cs!')

if __name__ == '__main__':

print('cs主函数!')

之后运行yy.py

结果如下:

引用cs

已打开cs!

程序结束!

到这一步,大家应该知道  if __name__ == '__main__': 是干什么用的了吧!

在python中if是什么意思_python中为什么需要使用“if相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  4. python深复制与浅复制_Python中的深拷贝和浅拷贝详解

    要说清楚Python中的深浅拷贝,需要搞清楚下面一系列概念: 变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) [变量-对象-引用] 在Python中一切都是对象,比如说:3, ...

  5. python运行mcmc为何老出错_python中mcmc方法的实现

    MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...

  6. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  7. python计算数组元素的和_python中数组的运算

    Python中进行数组的运算需要调用NumPy包. 其官网是:http://www.numpy.org/​www.numpy.org NumPy是Python语言的一个扩充程序库.它支持高级大量的维度 ...

  8. python中格式化字符串的作用_python中字符串格式化的意义(化妆)

    格式 描述 %%百分号标记 #就是输出一个% %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号 ...

  9. python中 r是什么意思_python中rb含义理解

    Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前 ...

  10. python字典是什么的集合_Python中的字典和集合

    文章目录字典1.介绍 2.创建字典 3.字典内元素的访问 4.字典元素的添加.修改.删除 5.关于字典的其它操作 6.字典存储底层原理 集合1.介绍 2.相关操作 3.集合元素的添加 4.移除元素 字 ...

最新文章

  1. 程序员javascript写乒乓球,和机器人练技术!没赢过!
  2. python外包_python怎么找外包
  3. adb 相关问题总结
  4. bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)
  5. 井下三专两闭锁的内容_局部通风机三专两闭锁具体规定
  6. php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
  7. seir模型数学建模python_Python改进的SEIR模型
  8. 程序员面试需要出示身份证和毕业证原件吗?
  9. 读书笔记——计算机基础之操作系统
  10. js闭包,这个算是比较通俗的了(转)
  11. 第十九周—c语言 电子词典项目
  12. 埃森哲是如何系统化做好数据分析的
  13. “互联网“各职位的简称
  14. CORBA Programming with TAO - 3.IDL Data Type(数据类型与Mapping)例子常见问题篇
  15. java制作小鱼吃大鱼_Java课程设计——大鱼吃小鱼(团队)
  16. jboss不打印日志的问题------:logback + slf4j + jboss + spring mvc----菩提树下的杨过
  17. 她笔下的水墨世界令人赞叹,中国风海报沉浸式国风体验
  18. 14个种类,600款笔刷!如何做一套属于自己的精美笔刷?
  19. channel小知识点
  20. 计算机图形学绪论:感知、光、颜色和数学

热门文章

  1. java数据结构和算法——前缀表达式(即波兰表达式)、中缀表达式及后缀表达式(即逆波兰表达式)介绍
  2. JavaScript音频编辑
  3. 字符型变量ch的值为英文字母 的c语言表达式
  4. 红月OD反汇编实时显示坐标,背景色可透明也可以不透明
  5. 【教程】Gentoo的安装
  6. photoshop 技巧
  7. 面试系列--如何自我介绍
  8. 如何开启WIN10卓越性能模式
  9. 疫情下跨越一万公里的友情:熊超与飒特电子哨兵的故事
  10. 巴塞尔协议中的计算公式_十分钟读懂巴塞尔协议