当前位置: 首页 > news >正文

python编程中的if __name__ == 'main': 的作用和原理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

python编程中的if name == 'main': 的作用和原理

在大多数编排得好一点的脚本或者程序里面都有这段if name == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与大家分享。

** 1、这段代码的功能**

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

** 2、运行的原理**

每个python模块都包含一个内置的变量,即__name__,当运行模块(.py文件)被执行的时候,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“main”等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,name == 'main'结果为真。

转载于:https://my.oschina.net/u/1421030/blog/736800

相关文章:

  • [raspberry pi3] zram设置
  • MyEclipse Site
  • 金蝶出现问题该怎么解决
  • Access 中数据库操作时提示from子句语法错误
  • rsync服务之配置文件rsyncd.conf详细说明
  • 【223】◀▶ IDL HDF 文件操作说明
  • 角色和权限Hibernate实体映射配置
  • C言语指向数组元素的指针
  • 常见问题解决
  • T-SQL 之 自定义函数
  • Comparable和Comparator排序接口
  • 驰骋工作流引擎表单设计控件-关系类控件-明细表(3)
  • 第一篇、C_高精度加法
  • 【域控管理】父域的搭建
  • dos.orm
  • [译] 怎样写一个基础的编译器
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CSS盒模型深入
  • echarts的各种常用效果展示
  • httpie使用详解
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Javascript设计模式学习之Observer(观察者)模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Protobuf3语言指南
  • Python3爬取英雄联盟英雄皮肤大图
  • Python实现BT种子转化为磁力链接【实战】
  • Ruby 2.x 源代码分析:扩展 概述
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Sass 快速入门教程
  • Service Worker
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 译有关态射的一切
  • 优秀架构师必须掌握的架构思维
  • 阿里云服务器如何修改远程端口?
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​学习一下,什么是预包装食品?​
  • #《AI中文版》V3 第 1 章 概述
  • #vue3 实现前端下载excel文件模板功能
  • (9)STL算法之逆转旋转
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Git) gitignore基础使用
  • (ros//EnvironmentVariables)ros环境变量
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)JAVA中的堆栈
  • (转)setTimeout 和 setInterval 的区别
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!