if name == ‘main’:用法
转载:https://www.cnblogs.com/liruilong/p/12867590.html
if name == ‘main’:的作用

一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。

因此 if name == ‘main’: 的作用就是控制这两种情况执行代码的过程,

在 if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。举例说明如下:

直接执行

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

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

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

只输出了第一行字符串。即,if name==“main”: 之前的语句被执行,之后的没有被执行。

if name == ‘main’:的运行原理

每个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 打印出来。文件内容和结果如下:

可以看出,此时变量__name__的值为"main"。

再执行 import_test.py,执行结果如下:

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

python程序入口相关推荐

  1. 成功解决python.exe 无法找到程序入口 无法定位程序输入点

    成功解决python.exe 无法找到程序入口 无法定位程序输入点 导读:此文为博主编写代码过程笔记. 目录 解决问题 解决方法 参考网友推荐答案 第一位网友的建议 第二位网友的建议 相关文章:成功解 ...

  2. python的程序入口地址_第一个Python程序

    在写代码之前,请千万不要用"复制"-"粘贴"把代码从页面粘贴到你自己的电脑上.写程序也讲究一个感觉,你需要一个字母一个字母地把代码自己敲进去,在敲代码的过程中, ...

  3. python语言是编译型语言-Python程序的执行过程原理(解释型语言和编译型语言)...

    Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的 ...

  4. python编程语法-Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  5. python程序只能使用源代码进行运行吗-谈谈 Python 程序的运行原理

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...

  6. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  7. 谈谈 Python 程序的运行原理

    谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的读书笔记,整理完之后才发现很长,那就将就看吧. 1. 简单的例子 先从一个简单的例子说起,包含了两个文件 foo.py ...

  8. 利用pyinstaller打包Python程序为一个可执行文件

    有时,Python发布的程序需要被打包为一个文件夹.甚至一个文件发布.目前(2020)最佳的策略是使用pyinstaller. pyinstaller不仅支持打包整个运行环境到一个可执行文件,而且还支 ...

  9. 手工将python程序发布为exe执行程序 [转]

    1. 手动制作python的exe可执行程序Python没有内建一个编译为exe的功能.给python程序的部署带来不少的麻烦.所以就会出现一些py2exe之类的很不错的工具,用于自动把.py文件编译 ...

最新文章

  1. 追溯XLNet的前世今生:从Transformer到XLNet
  2. ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)
  3. 非常好的bert中文预训练资料
  4. [芦半山]Binder的异常机制
  5. vue弹出层滑动禁止背景跟着滑动_vue移动端弹起蒙层滑动禁止底部滑动操作
  6. 【学习笔记】深入理解js原型和闭包(9)—— 简述【执行上下文】下
  7. ORACLE修改表信息
  8. ADB命令和Monkey命令
  9. the little schemer 笔记(8)
  10. 2019年4月27号,下雨杂谈
  11. Python零基础之selenium
  12. 知道打印机的IP地址,win10怎样连接打印机?
  13. 移动SEO优化指南(附百度内部移动化培训课程)
  14. android 进退分屏代码策略,Android的分屏模式开发注意事项
  15. Java设计模式之——策略模式(Strategy)
  16. Ubuntu16.04系统迁移SSD
  17. mac 我用Mac的这一年
  18. python图像处理:全景图片转鱼眼图片(鱼眼矫正)
  19. 谷传民对战大衣哥,和合国际收购《火火的情怀》后孟文豪新曲上线
  20. 7-1 重要的话说三遍 (5 分)

热门文章

  1. 云计算原来是IT界工资最高的
  2. 金融工程知识学习——限价单、止损单、市价单
  3. 关于思科模拟器7.3.1无法显示登陆窗口的解决方案
  4. 3、中小企业网络架构-接入层交换机基本配置
  5. phpcms选择文件无法加载插件怎么办_win7系统下浏览器显示无法加载插件如何解决...
  6. python开发数据库_有没有利用python开发数据库的案例
  7. 游戏制作之路(1)Blender下载
  8. ESSENTIAL C++ 读书笔记
  9. 4.11 数值分析: 求重根/带参数m的牛顿迭代法
  10. php爆路径与sql注入,人人网游戏XSS+SQL注入+爆路径+列目录,员工信息大量泄漏