if __name__ == __main___一文搞懂 if __name__ == #39;__main__#39;
生信必备的Python入门到进阶干货,已整理在菜单栏,敬请查阅
在写Python脚本时,总会遇到 if __name__ == '__main__',生信背景的我们有必要了解这个是啥。
举个例子,新建 example_module.py:
print('入门BioPython')def main(): print('进阶BioPython')if __name__ == '__main__': main() print('大师BioPython')
运行:
入门BioPython进阶BioPython大师BioPython
然后,在同一文件夹下,新建 main.py:
import example_module
运行:
入门BioPython
与之前 example_module.py 代码运行结果相比,只输出了"入门BioPython"
, if __name__=="__main__": 之前的语句被执行,之后的并没有被执行。
现在,我们在 example_module.py的 if __name__ == "__main__": 之前加一行代码,将 __name__ 打印出来:
print('入门BioPython')def main(): print('进阶BioPython')print(__name__)if __name__ == '__main__': main() print('大师BioPython')
运行结果如下:
入门BioPython__main__进阶BioPython大师BioPython
可以看出,此时变量 __name__ 的值为 "__main__" 。
再次执行 main.py,执行结果如下:
入门BioPythonexample_module
此时,example_module.py 中的__name__变量值为“example_module”,不满足 __name__=="__main__"的条件,无法执行相关代码块。
由于每个Python文件都包含内置的变量:__name__,当运行模块被直接执行的时候,__name__等于文件名(包含后缀.py)。如果import到其他模块中,则__name__等于模块名(不包含后缀.py)。重点:“__main__”等于当前执行文件的名称(包含后缀.py)。所以当模块被直接执行时,__name__ == '__main__';而当模块被import到其他模块中时,__name__ != '__main__'。
简而言之:当模块直接运行时,条件成立,代码将被运行。当模块被导入时,条件不成立,代码不运行。
if __name__ == __main___一文搞懂 if __name__ == #39;__main__#39;相关推荐
- 一文搞懂RNN(循环神经网络)
基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...
- 一文搞懂 Python 的 import 机制
一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...
- python语言语句快的标记是什么_一文搞懂Python程序语句
原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...
- 一文搞懂 Java 线程中断
转载自 一文搞懂 Java 线程中断 在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程 ...
- 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm
***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...
- 一文搞懂如何使用Node.js进行TCP网络通信
摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...
- 【UE·蓝图底层篇】一文搞懂NativeClass、GeneratedClass、BlueprintClass、ParentClass
本文将对蓝图类UBlueprint的几个UClass成员变量NativeClass.GeneratedClass.BlueprintClass.ParentClass进行比较深入的讲解,看完之后对蓝图 ...
- 一文搞懂AWS EC2, IGW, RT, NAT, SG 基础篇下
B站实操视频更新 跟着拉面学习AWS--EC2, IGW, RT, NAT, SG 简介 长文多图预警,看结论可以直接拖到"总结"部分 本文承接上一篇文章介绍以下 AWS 基础概念 ...
- 一文搞懂CAN FD总线协议帧格式
目录 1.为什么会出现CAN FD? 2.什么是CAN FD? 3.CAN FD和CAN总线协议帧异同 4.解析CAN FD帧结构 4.1.帧起始 4.2.仲裁段 4.3.控制段 4.4.数据段 4. ...
最新文章
- python【数据结构与算法】二分模板
- 老男孩教育每日一题-第108天-php-fpm优化关闭危险参数有哪些?
- Kubernetes 时代的安全软件供应链
- 【Python】聊聊Pandas的前世今生
- 2018,抢票大作战
- 2.5.1 MySQL数据库备份恢复基础讲解
- 服务器应用缓存热点问题思考
- 第六章 统计量及其抽样分布
- JavaWeb前台异常处理
- android 返回图标布局,Android 开发BottomNavigationView学习
- 做技术的你,如果别人找你创业,该怎么办?
- 南方cass字体样式设置_cass改变字体格式 cass字体样式管理器
- 数字地-DGND与模拟-AGND地的大学问
- SIRS传染病模型求解及MATLAB实现
- Ajax读取本地json文件
- 腾讯、华为角逐“云游戏”
- 京东API item_search - 按关键字搜索商品
- 百度地图转高德地图(火星坐标)高德地图(火星坐标)转百度地图
- Modelarts培训第一次
- 前端面试总结以及面试题
热门文章
- Python: SystemError: Unknown opcode
- 【Proteus仿真8086】简单IO接口实验——无条件传输和查询方式
- 贺利坚老师汇编课程42笔记:DIV除法指令
- 关于8086七种寻址方式的练习
- cmd下dir后导入oracle数据库,Oracle在dos命令下导出导入
- PHP/JS中获取当前页面的完整URL
- ZJOI2008 生日聚会
- Activiti6.0 安装出错 log4j:ERROR setFile(null,true) call failed.
- Linux FastDFS 分布式文件系统安装
- 数据库对象之存储过程