python使用笔记:if __name__ == ‘__main__‘ 如何理解
大部分内容来自:
作者:初识CV
链接:https://www.zhihu.com/question/49136398/answer/1654722335
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
为什么使用__name__属性?
Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用__name__属性。
__name__属性的值
__name__属性是Python的一个内置属性,记录了一个字符串。
若是在当前文件,__name__ 的值是__main__。
若是导入的文件,__name__是模块名。
test文件导入hello模块,在test文件中打印出hello模块的__name__属性值,显示的是hello模块的模块名。
举例来理解
我们知道,当我们把模块A中的代码在模块B中进行import A时,只要B模块代码运行到该import语句,模块A的代码会被执行。
模块A:
# 模块A
a = 100
print('你好,我是模块A……')
print(a)
模块B:
# 模块B
from package01 import A
b = 200
print('你好,我是模块B……')
print(b)
运行模块B时,输出结果如下:
你好,我是模块A……
100
你好,我是模块B……
200
如果在模块A中,我们有部分的代码不想在被导入到B时直接被运行,但在直接运行A时可直接运行,那该怎么做呢?那就可以用到“if __name__==’__main__:”这行代码了,我们对上面用到的A模块代码进行修改:
A模块代码修改为:
# 模块A
a = 100
print('你好,我是模块A……')
if __name__=='__main__':print(a)
B模块不做修改,直接执行B模块,输出结果如下:
你好,我是模块A……
你好,我是模块B……
200
看到了吗,A模块中的a的值就没有再被输出了。所以,当你要导入某个模块,但又不想该模块的部分代码被直接执行,那就可以把这一部分代码放在“if __name__==’__main__’:”内部。
python使用笔记:if __name__ == ‘__main__‘ 如何理解相关推荐
- Python爬虫笔记——if __name__ == ‘__main__‘ 如何正确理解和__init__和self 的解析
Python中if name == 'main':的作用和原理 Python中if name == 'main',__init__和self 的解析
- 如何简单地理解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 ...
- 2020-12-11 Python中的 if __name__ == “__main__“
Python中的 if __name__ == "__main__" 对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__ ...
- python解释器遇到if __name__==__main__会如何做?
python解释器遇到if __name__=="__main__"会如何做 # Threading example import time, threaddef myfuncti ...
- 魔力Python--if __name__ == '__main__' 的理解
if __name__ == '__main__' 的理解 __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 ...
最新文章
- SHOP++源码部署说明:
- 机器学习算法-随机森林之决策树R 代码从头暴力实现(2)
- cmd设置mysql初始密码_windows下mysql初始密码设置
- Java发送HTTP POST请求(内容为xml格式)
- 程序上下文切换,什么是上下文?
- hdp ambari Confirm Hosts 部署错误问题
- 任天堂switch底座带网口全新方案分享
- android箭头的样式修改,安卓自定义控件 一个指示用的箭头
- 英语动名词可以做什么句子成分
- qq空间留言板删除 php,怎么批量删除QQ空间的说说
- 她们不止“都挺好”自带”苏明玉“光环的美联人
- CTA-敏感行为-复制到剪切板/从剪切板粘贴
- Edge浏览器缓存问题简直可怕
- 【Git】回退 commit 版本详解
- 三伏天不能吃冷饮?7月这些蜚语你中招没
- 做食材配送行业,哪个平台软件比较好?
- 用LU_ASR语音控制板和Arduinonano做一个桌面老婆(1)
- 官方消息:即将开始退钱
- 28、完美的RestApi
- Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
热门文章
- tinyxml 内存泄露_有关TinyXML使用的简单总结
- python源程序执行的方式是什么执行-python调用可执行文件的方法
- 计算机组成原理第3版谢树煜,计算机组成原理(第3版)
- python字典通讯录_Python利用字典将两个通讯录文本合并为一个文本实例
- Nilearn教程系列(3)-ICA静息功能磁共振成像的分组分析:CanICA
- [unreal4入门系列之十] UE4添加角色到场景中
- 借助C/C++进行Android开发:NDK的配置与使用
- 看屁股,你是一头大象吧
- 快速学习正则表达式,不用死记硬背,这里有份中文资源和互动学习网站
- php 超长用省略号代替