Python __name__ == ‘__main__’详细解释-Python零基础入门教程

目录

  • 一.简介
    • 1.__name__
    • 2.’__main__’
    • 3.__name__ == ‘__main__‘
  • 二.作用
  • 三.猜你喜欢

​ 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

学习过 C 语言或者 Java 语言的盆友应该都知道程序运行必然有主程序入口 main 函数,而 Python 却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后 Python 不少开源项目或者模块中依然存在 __name__ == “__main__” 这种写法,具体是上面意思呢?

一.简介

1.__name__

** __name__** 是 Python 的内置属性,是系统全局变量!每一个 py 文件都有一个属于自己的__name__:

** 如果 py 文件作为模块被导入(import),那么 __name__ 就是该 py 文件的文件名(也称 模块名);**

** 如果 py 文件直接运行时(Ctrl+Shift+F10),那么 __name__ 默认等于字符串”__main__”;**

举个简单的例子:假如你名字是张三

在朋友眼中,你是张三(__name__ == '张三')

在你自己眼中,你是你自己(__name__ == '__main__')

2.’__main__’

‘_ _main_ _’ 实际上就是一个字符串,用来鉴别程序入口,没有太多花里胡哨的东西.

3.__name__ == __main__‘****

当 .py 文件被直接运行 (Ctrl+Shift+F10) 时,** if __name__ == ‘__main__’ 之下的代码块将被运行,该语句就相当与 Python 的 main 主函数入口**,示例代码如下:

a.新建一个 my_name.py 文件,作为模块文件:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 定义一个函数并打印 __name__
def prit_name():print("my_name.py __name__:", __name__)if __name__ == "__main__":prit_name()

b.新建一个 python_main.py 文件,作为启动文件 (Ctrl+Shift+F10):

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python __name__ == ‘__main__’.py
@Time:2021/04/24 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 导入 my_name 模块
import my_name# 定义一个函数并打印 __name__
def prit_name():my_name.prit_name()print("python_main.py __name__:", __name__)if __name__ == "__main__":prit_name()'''
输出结果:my_name.py __name__: my_name
python_main.py __name__: __main__'''

** 由此可见,作为启动文件 python_main.py ,该文件的内置属性 __name** 等于 ‘__main__’,而 my_name.py 作为导入模块,该模块的 __name** 等于文件名(也称模块名字),所以 my_name.py 中的 表达式 if __name__ == ‘__main__’ 并不成立!**

当直接将 my_name.py 作为启动文件时 (Ctrl+Shift+F10),输出:

my_name.py __name__: __main__

**总结: **

如果 py 文件作为模块被导入(import),那么 __name__ 就是该 py 文件的文件名(也称 模块名);

如果 py 文件直接运行时(Ctrl+Shift+F10),那么 __name__ 默认等于字符串 __main__‘** ;**

二.作用

1.__name__ == __main__ 作为启动 py 文件的 main 函数入口;

2.一个项目中必然会包含多个模块文件,每个模块文件在自己写完代码之后会做一些简单的测试用于检测 bug 或者 对自己的函数调用写一个简单的示例,而恰到好处的是:__name__ == __main__ 既不会影响你的测试代码,也不会影响别人调用你的接口函数;

三.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python __name__ == ‘__main__’详细解释

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTF备战

CTF-WEB条件: 之间件的基础:Apache、IIS、Nginx、WebLogic、Tomcat等 数据库的基础:Oracle、MySql、SqlServer等 编程语言基础:PHP、Python、PythonWeb、Java、JavaWeb等 安全漏洞基础:XSS、CSRF、SSRF、SQL注入、文件…

学计算机高中选那三科,女生高中选哪三科最吃香

女生高中选哪三科最吃香2020-12-30 14:42:19文/丁雪竹女生高中选哪三科最吃香,怎么选择好,小编整理了相关信息,来看一下!女生高中选哪三科最吃香兴趣能够决定学习的深度,女生只要根据自己的兴趣,在最佳组合…

CTF-杂项题-伪加密

手动分离压缩包注意: zip压缩包文件头格式为504B0304,之间包含504B0102,文件以504B0506****结尾,注意这类格式。 zip伪加密 zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。但实际是没有…

Anaconda是什么?Anconda下载安装教程 - Python零基础入门教程

目录 一.前言二.Anaconda 是什么?三.Anaconda 下载地址四.Anaconda 安装五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Anaconda 工具集合 – 第三方库集合Pycharm 开发工具,俗称 IDE – 写代码工具 二…

Cloud一分钟 | 电商月将至,腾讯云DCDB助力电商企业应对支付洪峰

Hello,everyone:10月08早,星期五,祝大家工作愉快!一分钟新闻时间:推荐阅读1.7亿条数据,比胡同和撸串更真实的北京面趣 | 为什么要分稳定排序和非稳定排序?使用动态规划解决童年难题V…

html5 自定义标签图例,奥维互动地图浏览器电脑版中自定义标签图标的增加方法...

这篇文章讲的是奥维互动地图浏览器电脑版中自定义标签图标的增加方法,感兴趣的小伙伴可以来学习一下哦。奥维互动地图浏览器电脑版中自定义标签图标的增加方法1、点击菜单:系统---数据管理---自定义图标管理(也可以就在标签图片选择--自定义页面&#xf…

CTF-MISC杂项题1

由于内容过多,分两篇展示 杂项题基本解题攻略: 内容: 1.文件操作与隐写 2.图片隐写术 3.压缩文件处理 4.流量取证技术 文件操作与隐写 file命令可识别文件类型 file filejpg file filegpng file filegzip 文件类型识别 在Window&#xff…

一座在云端的工厂是什么样的?

相信人们在生活中体验了很多云应用带来的便捷,而在工业领域,一座在云端的工厂会是什么样的呢?MindSphere on Alibaba Cloud就要来了,很快中国的小伙伴们就可以真切感受到了。就在9月19日,西门子和阿里云就MindSphere落…

Pycharm 提示:this license * has been cancelled - Python零基础入门教程

目录 一.前言一.找到 hosts 文件二.修改 hosts 文件三.检查 hosts 文件是否修改成功四.pycharm 安装详细教程五.猜你喜欢 一.前言 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Pycharm 安装过程中,提示 this license **** has been c…

湘潭哪里学计算机编程,湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?...

原标题:湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?随着机器人编程教育在一线城市的大众化,许多家长也纷纷跟随着趋势送孩子去学习,如果你也想要自己的孩子学习机器人编程,那就一起来看看学习机器…

Cloud一分钟 | 蚂蚁金服估值超万亿;Google大举进军游戏市场

Hello,everyone:10月09日早,星期二,祝大家工作愉快!一分钟新闻时间:完1.微信群:添加小编微信:tangguoyemeng,备注“进群姓名公司职位”即可,加入【云计算学习…

CTF-MISC杂项题2

这篇博客接着CTF-MISC杂项题1继续讲 03 压缩文件处理 压缩文件分析 伪加密一般考察zip与rar,现在不常考,因为现在压缩软件功能强大,自动可以识别伪加密 框里的80的尾数为0即可解密,若改了值还报错,为真加密 …

Pycharm设置开发模板/字体大小/背景颜色 - Python零基础入门教程

目录 一.Pycharm 设置字体大小/风格二.Pycharm 设置背景颜色三.Pycharm 设置开发模板四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Pycharm 设置字体大小/风格 选择 File –> setting –> Editor –> Font ,可以看到如上…

计算机软件复用意义何在,2009计算机科学技术导论复习要点.pdf

计算机科学技术导论复习要点第1章 计算机科学技术与信息化社会本章在介绍计算机的定义、分类、特点、用途和发展等基本概念的基础上,分析了信息化社会的特征、Internet 对信息化社会的影响以及信息化社会对人才的需求和培养方案。考核要求 :1.1 计算机的…

我们研究了1.5万场活动,换个大城市生活可能对你有用

图片来源:视觉中国作者宋宇 唐也钦 陈琪来源DT财经原创作品,如有转载,请联系公众号授权。“年轻人在大城市可以选择两种生活,一种叫北上深,一种叫广。在哪个城市可以有更好的生活?DT君最近格外关注这个话题…

CTF-Crypto密码学

密码学 01密码学概述 密码学的发展 密码编码学 编码与加密? 编码为一类映射的关系(一一映射) 加密为一类算法(有算法(公开的),密钥(不可泄漏)) 明文 ------> 密文 plain text cipher text 对称密码和不对称密码算法 对称密码算法优点:加密…

Python 字符串/列表/元组/字典之间的相互转换 - Python零基础入门教程

目录 一.字符串 str 与列表 list 1.字符串转列表2.列表转字符串 二.字符串 str 与字典 dict 1.字符串转字典2.字典转字符串 三.列表 list 与字典 dict 1.列表转字典2.字典转列表 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.字符串…

西北工业大学计算机学院 培养方案,西北工业大学计算机科学与技术学科卓越工程师培养计划培养方案.doc...

西北工业大学计算机科学与技术学科卓越工程师培养计划培养方案西北工业大学计算机科学与技术学科“卓越工程师培养计划”(硕士)培养方案2011年02月目 录1 指导思想12 培养目标13 培养模式23.1 总体原则23.2 理论联系实际的培养23.3 校企联合培养方式24 政策措施44.1学生的遴选与…

Cloud一分钟 | 谷歌退出美国防部云计算竞标;网络黑灰产业已近千亿,个人信息泄露是源头...

Hello,everyone:10月10日早,星期三,祝大家工作愉快!一分钟新闻时间:完1.微信群:添加小编微信:tangguoyemeng,备注“进群姓名公司职位”即可,加入【云计算学习…

CTF-sql注入

在phpstudy里 #为注释 密码随便输入的 还可以输入admin’#(可注释掉) 注意:有的不让输入特殊字符,因为可以绕过验证 在URL处输入网址,在此工具里打开网页,可以点击右上方的扫描网址或者扫描URL 点击后,弹…