大部分内容来自:
作者:初识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__‘ 如何理解相关推荐

  1. Python爬虫笔记——if __name__ == ‘__main__‘ 如何正确理解和__init__和self 的解析

    Python中if name == 'main':的作用和原理 Python中if name == 'main',__init__和self 的解析

  2. 如何简单地理解Python中的if __name__ == '__main__'

    如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...

  3. Python 中的 if __name__ == __main__ 该如何理解

    Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...

  4. 2020-12-11 Python中的 if __name__ == “__main__“

    Python中的 if __name__ == "__main__" 对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__ ...

  5. python解释器遇到if __name__==__main__会如何做?

    python解释器遇到if __name__=="__main__"会如何做 # Threading example import time, threaddef myfuncti ...

  6. 魔力Python--if __name__ == '__main__' 的理解

    if __name__ == '__main__' 的理解 __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ . 这句话的意思就是,当模块被直接运行时,以下代码块将被运行, ...

  7. 如何快速简单粗暴地理解Python中的if __name__ == ‘__main__‘

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  8. 解惑(二)----- 如何通俗地理解Python中的if __name__ == ‘__main__‘

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  9. 简单理解Python中的if __name__ == '__main__'

    1. 摘要 通俗的理解__name__ == 'main':假如你叫小明.py,在朋友眼中,你是小明(name == '小明'):在你自己眼中,你是你自己(name == 'main'). if na ...

最新文章

  1. SHOP++源码部署说明:
  2. 机器学习算法-随机森林之决策树R 代码从头暴力实现(2)
  3. cmd设置mysql初始密码_windows下mysql初始密码设置
  4. Java发送HTTP POST请求(内容为xml格式)
  5. 程序上下文切换,什么是上下文?
  6. hdp ambari Confirm Hosts 部署错误问题
  7. 任天堂switch底座带网口全新方案分享
  8. android箭头的样式修改,安卓自定义控件 一个指示用的箭头
  9. 英语动名词可以做什么句子成分
  10. qq空间留言板删除 php,怎么批量删除QQ空间的说说
  11. 她们不止“都挺好”自带”苏明玉“光环的美联人
  12. CTA-敏感行为-复制到剪切板/从剪切板粘贴
  13. Edge浏览器缓存问题简直可怕
  14. 【Git】回退 commit 版本详解
  15. 三伏天不能吃冷饮?7月这些蜚语你中招没
  16. 做食材配送行业,哪个平台软件比较好?
  17. 用LU_ASR语音控制板和Arduinonano做一个桌面老婆(1)
  18. 官方消息:即将开始退钱
  19. 28、完美的RestApi
  20. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令

热门文章

  1. tinyxml 内存泄露_有关TinyXML使用的简单总结
  2. python源程序执行的方式是什么执行-python调用可执行文件的方法
  3. 计算机组成原理第3版谢树煜,计算机组成原理(第3版)
  4. python字典通讯录_Python利用字典将两个通讯录文本合并为一个文本实例
  5. Nilearn教程系列(3)-ICA静息功能磁共振成像的分组分析:CanICA
  6. [unreal4入门系列之十] UE4添加角色到场景中
  7. 借助C/C++进行Android开发:NDK的配置与使用
  8. 看屁股,你是一头大象吧
  9. 快速学习正则表达式,不用死记硬背,这里有份中文资源和互动学习网站
  10. php 超长用省略号代替