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__‘ 既不会影响你的测试代码,也不会影响别人调用你的接口函数;
三.猜你喜欢
- Python for 循环
- Python 字符串
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
- Python 函数声明和调用
- Python 不定长参数 *argc/**kargcs
- Python 匿名函数 lambda
- Python return 逻辑判断表达式
- Python 字符串/列表/元组/字典之间的相互转换
- Python 局部变量和全局变量
- Python type 函数和 isinstance 函数区别
- Python is 和 == 区别
- Python 可变数据类型和不可变数据类型
- Python 浅拷贝和深拷贝
未经允许不得转载:猿说编程 » Python __name__ == ‘__main__’详细解释
Python __name__ == ‘__main__’详细解释-Python零基础入门教程相关推荐
- Python爬虫超详细讲解(零基础入门,老年人都看的懂)!
注重版权,转载请注明原作者和原文链接 作者:码农BookSea 原文链接:https://blog.csdn.net/bookssea/article/details/107309591 先看后赞,养 ...
- Python 进程 Process 模块 - Python零基础入门教程
目录 一.Python 进程 Process 简介 二.Python 进程 Process 模块 三.Python 进程 Process 函数介绍 四.Python 进程 Process 使用 五.P ...
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
目录 一.Python 线程池前言 二.Python 线程池 ThreadPoolExecutor 常用函数 1.线程池 as_completed 函数使用 2.线程池 map 函数使用 3.线程池 ...
- Python 线程池 ThreadPoolExecutor(一) - Python零基础入门教程
目录 一.Python 线程池前言 二.Python 线程池原理 三.Python 线程池 ThreadPoolExecutor 函数介绍 四.Python 线程池 ThreadPoolExecuto ...
- Python 线程优先队列 PriorityQueue - Python零基础入门教程
目录 一.Python 线程队列 Queue 分类 二.Python 线程优先队列 PriorityQueue 简介 三.Python 线程优先队列 PriorityQueue 函数介绍 四.Pyth ...
- Python 线程队列 LifoQueue – LIFO - Python零基础入门教程
目录 一.Python 线程队列 Queue 分类 二.Python 线程先进后出队列 LifoQueue 简介 三.Python 线程先进后出队列 LifoQueue 函数介绍 四.Python 线 ...
- Python 线程队列 Queue – FIFO - Python零基础入门教程
目录 一.Python 线程队列分类 二.Python 线程先进先出队列 Queue 简介 三.Python 线程先进先出队列 Queue 常用函数 四.Python 线程先进先出队列 Queue 使 ...
- Python 进程 Process 与线程 threading 区别 - Python零基础入门教程
目录 一.Python 线程 threading 创建 二.Python 进程 Process 创建 三.Python 进程 Process 和线程 threading 区别 四.Python 进程 ...
- Python 线程信号量 semaphore - Python零基础入门教程
目录 一.Python 线程信号量 semaphore 简介 二.Python 线程信号量 semaphore 原理 三.Python 线程信号量 semaphore 函数介绍 四.Python 线程 ...
最新文章
- python09-魔法方法
- CSS Guide Lines
- php命名空间划重点
- python基础语法手册-python语法大全,python语法手册
- 金蝶K3-航天信息税控发票开票软件接口程序
- GreenSock Animation Platform
- 电影院购票系统ssm (含论文)
- iOS8 UIApplicationOpenSettingsURLString
- Python 最常见的 170 道面试题解析:2019 最新
- mimax 刷原生android,小米手机想爽刷原生安卓?不愁!
- django实现websocket作为安卓开发后台(软件课设,oo聊天)
- 使用Factory IO连接TIA Portal 自动化仿真
- 适合小规模培训、带货的群直播是怎样的呢?
- CenterPoint 学习笔记
- 第三方微信+支付宝个人免签支付源码
- NAT地址转换(超详细解说版)
- 关于路由的这10个问题,网络工程师们应该掌握
- 第二篇 树莓派基本外设基础篇
- 平台全局 css代码,css全局样式基础代码(示例代码)
- 开源OA系统门户:企业信息互通,集成办公
热门文章
- Flink 1.12 资源管理新特性回顾
- 吉麦新能源与联想签订战略合作协议,共同拥抱智能网联汽车升维时代
- 13种重要的云原生工具,让交付过程更快
- 2019年中国IaaS公有云市场排名及份额出炉
- 10个业界最流行的Kubernetes发行版
- 分布式精华问答 | 秒懂分布式与集群的区别
- 百度宣布架构调整,BAT要在To B业务重开一局
- Cloud一分钟 | 成本大增致谷歌财报蒙尘;Gartner发数据库魔力象限:阿里云成为黑马...
- react中类组件this指向
- lol模型导入ue4_Houdini amp; UE4 程序化建模——石头(一)基础工作流