2020-12-11 Python中的 if __name__ == “__main__“
Python中的 if __name__ == "__main__"
对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__"
,这时心里就开始吐槽:“绝对又是装逼,我特么不写这句话,代码不照样跑得好好的!
我刚开始碰到这行代码时,心里也是这样想的!
吐槽归吐槽,存在必然有存在的道理。现在就来看看这句代码到底是个啥意思,因为这句话能够帮你对Python模块的理解上一个层次。
通过例子来理解
只要你创建了一个模块(一个.py文件),这个模块就有一个内置属性name生成,该模块的 name 的值取决于如何应用这个模块。说人话就是,如果你直接运行该模块,那么__name__ == "__main__"
;如果你 import 一个模块,那么模块name 的值通常为模块文件名。
如,创建一个test1.py:
def func():print('hello, world!')if __name__ == "__main__":func()
模块中,首先定义了函数func(),用来打印出hello, world!,然后判断__name__
是否等于 __main__
,如果等于,有打印,反之则反,现在运行该模块,结果为:
hello, world!
说明__name__
等于 __main__
。
这时,输入代码:
再创建一个test2.py:
import test1print('bye, world!')
模块中,首先import test1,然后打印bye, world!做测试用,运行该模块,结果为:
bye, world!
运行结果仅有bye, world!,说明__name__
不等于 __main__
。
通过上面test1.py和test2.py两个模块,我们现在可以得出一个非常实用的结论: 如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。
2020-12-11 Python中的 if __name__ == “__main__“相关推荐
- 如何简单地理解Python中的if __name__ == '__main__'
如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...
- Python 中的 if __name__ == __main__ 该如何理解
Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...
- python中使用if __name__ == '__main__':
引子 在python中,假设在一个test1.py的模块中定义了一个foo函数,然后调用函数foo进行测试的时候会产生一个内存空间.当你把这个模块导入到test2.py模块中,接下来如果在test2. ...
- Python中的if __name__ == ‘__main__‘
if name == 'main'的意思是:当.py文件被直接运行时,if name == 'main'之下的代码块将被运行:当.py文件以模块形式被导入时,if name == 'main'之下的代 ...
- 如何快速简单粗暴地理解Python中的if __name__ == ‘__main__‘
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 解惑(二)----- 如何通俗地理解Python中的if __name__ == ‘__main__‘
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 简单理解Python中的if __name__ == '__main__'
1. 摘要 通俗的理解__name__ == 'main':假如你叫小明.py,在朋友眼中,你是小明(name == '小明'):在你自己眼中,你是你自己(name == 'main'). if na ...
- Python 中的 if __name__ == '__main__' 该如何理解
程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...
- 一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用
文章目录 前言 正文 .py源文件 实例现象 运行原理 前言 相信大部分开发者对于"程序入口"这个概念并不陌生.对于很多编程语言来说,程序都必须要有一个入口,比如既保留C语言面向过 ...
最新文章
- HTTP协议中的chunked编码解析
- “比特币耶稣”Roger Ver:比特币现金分叉没有技术论据支持
- 无监督学习:无监督降维
- jena dataset 增删改查
- PHPUNIT 单元测试
- linux nvme的sendfile流程
- 2020中国移动创客马拉松大赛移动云专题赛决赛成功举办
- 正定二次函数的共轭梯度法matlab实现
- 密码技术学习(8.1)-数字证书简介
- 扬声器阻抗曲线与对应的频率响应曲线
- 原神梦里花花种在哪种
- 一文详解立体匹配(附代码)
- 关于φ与Φ函数与序列中分数个数的讨论
- WiFi以及WLAN技术介绍
- LOG的含义 : Mysql 之 binlog介绍
- MySQL8.0安装失败
- 5.Hiveguigun滚(ノ`Д)ノ竟然竞争谨慎谨慎谨慎哈喇子罢工八公
- krita 平涂 线稿上色 颜色蒙版
- 建立用例模型应当注意的问题
- 初次联系导师短信模板_上海大学考研复试:如何联系导师
热门文章
- 条件随机场(conditional random fields) 及代码实现
- goland 远程调试go_手把手教你学Go语言,基础环境配置和Hello World
- TensorFlow官方入门实操课程-全连接神经网络分类
- 李宏毅深度学习——Tips for Deep Learning
- Oozie基于Hue全流程调度
- 华为,为什么让全世界都感到害怕?
- 流行的就是最好的:Android开发者的职场规划
- 也谈1+2+3+...+n的解答
- Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1
- Spring Cloud【Finchley】-10Hystrix监控