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

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

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

  1. #yy.py
  2. import cs
  3. print('引用cs')
  4. cs.cs()
  5. print('程序结束!')

cs.py文件如下

  1. #cs.py
  2. def cs():
  3. print('一打开cs!')
  4. print('cs主函数!')

运行结果会是:

  1. cs主函数!
  2. 引用cs
  3. 一打开cs!
  4. 程序结束!

分析:也就是说,如果你的目的只是调用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的代码:

  1. def cs():
  2. print('已打开cs!')
  3. if __name__ == '__main__':
  4. print('cs主函数!')

之后运行yy.py

结果如下:

  1. 引用cs
  2. 已打开cs!
  3. 程序结束!

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

python中使用“if __name__ == '__main__'”语句的作用相关推荐

  1. 一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用

    文章目录 前言 正文 .py源文件 实例现象 运行原理 前言 相信大部分开发者对于"程序入口"这个概念并不陌生.对于很多编程语言来说,程序都必须要有一个入口,比如既保留C语言面向过 ...

  2. 如何简单地理解Python中的if __name__ == '__main__'

    如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...

  3. Python 中的 if __name__ == __main__ 该如何理解

    Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...

  4. 2020-12-11 Python中的 if __name__ == “__main__“

    Python中的 if __name__ == "__main__" 对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__ ...

  5. python中使用if __name__ == '__main__':

    引子 在python中,假设在一个test1.py的模块中定义了一个foo函数,然后调用函数foo进行测试的时候会产生一个内存空间.当你把这个模块导入到test2.py模块中,接下来如果在test2. ...

  6. Python中的if __name__ == ‘__main__‘什么意思?

    什么是 __name__ 和 __main__ ? 为了解释这个问题,我们首先构造一个程序文件module1.py,内容如下: def func1():print('hello')print('the ...

  7. 一文弄懂Python中的 if __name__ == __main__

    1. 引言 在Python相关代码中,我们经常会遇到如下代码段: # stuff if __name__ == "__main__":# do stuff 本文将尽可能使用简单的样 ...

  8. Python中的if __name__ == ‘__main__‘

    if name == 'main'的意思是:当.py文件被直接运行时,if name == 'main'之下的代码块将被运行:当.py文件以模块形式被导入时,if name == 'main'之下的代 ...

  9. 如何快速简单粗暴地理解Python中的if __name__ == ‘__main__‘

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

最新文章

  1. 微软:杀死那个曾经全球第一的浏览器
  2. 【iOS开发】静态库 a文件合成脚本解释
  3. php的构造函数解析
  4. 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary
  5. 解释型语言与编译型语言
  6. Spring Data Pivotal Gemfire教程
  7. 前端学习(537):多列布局4横跨多列
  8. Flutter 萌新高频问题(加班猿妈妈叫你回家吃饭了)
  9. IntelliJ IDEA激活破解有效方法
  10. 基于Vue结合高德地图api做的一个坐标拾取组件
  11. redis 过期删除策略和淘汰策略 -redis设计与实现笔记
  12. 软考 - 系统架构设计师(软件架构设计)
  13. ascii转utf8 php,PHP 将ASCII转换为UTF-8编码
  14. 同步机构应遵循哪些基本准则
  15. 使用A*算法解迷宫最短路径问题
  16. 《JAVA》课程设计报告--企业人力资源管理系统
  17. u-boot下的DM驱动模型
  18. 2018年哪些科技突破将带来新惊喜?
  19. iPhone 隐藏底部 “Dock栏 ”教程
  20. js对象:实现继承的几种方式及优缺点

热门文章

  1. Linux编程make命令
  2. 十字路口红绿灯plc程序_实例讲解红绿灯PLC程序设计方法
  3. geoserver安装(war安装+exe安装)
  4. 第五节:泛型(泛型类、接口、方法、委托、泛型约束、泛型缓存、逆变和协变)
  5. 第七节:框架搭建之页面静态化的剖析
  6. 一步步编写操作系统 66 浅析c库函数与系统调用1
  7. vs c语言 多线程demo,一个多线程的Socket通信Demo(C语言实现)
  8. mqtt协议详解_IoT物联网设备上云技术方案详解
  9. 【JS 逆向百例】百度翻译接口参数逆向
  10. PWN-COMPETITION-GeekChallenge2021