Python小技巧:if __name__ == “__main__“ 的作用

news2024/11/19 18:22:20

前言

这里是Python小技巧的系列文章。这是第一篇,if __name__ == "__main__" 的作用。

在编写Python程序时候,总是习惯性的在文件的末尾添加这么一段代码。

if __name__ == "__main__":
    ...

至于它的作用是什么,先不管,能跑就行!

相信挺多小伙伴都是知其然,而不知其所以然的,下面来扒一下。


结论先说在前头:

  • 当一个 demo.py 文件作为独立的程序运行时候,那么 __name__ 变量的值 为__main__
  • 否则(如引用),__name__ 变量的值就会设置为 demo.py 文件的名称,即demo

感兴趣的小伙伴可以继续往下看~


知识点

知识点释义
dir()dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

剖析

if __name__ == “__main__“:,是个条件式语句。判断 __name__ 这个变量是否等于 __main__

执行dir(),获取当前模块的变量名

print(dir())

结果如下:

  • 这里没有定义任何变量,从而知道__name__是Python内置的一个属性。
    在这里插入图片描述

执行__name__,看看该变量的值

print(__name__)

结果如下:

  • 变量__name__ 的值为 __main__
    在这里插入图片描述

打印 __name__的文件为 demo.py,现在在demo2.py中导入 demo.py

import demo

结果如下:

  • 这里可以看到, __name__在被引用时候,它等于模块的名称。
    在这里插入图片描述

后话

本次分享到此结束!

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

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

相关文章

内网渗透-src挖掘-外网打点到内网渗透-3层内网渗透测试记录(2)-2023年1月

1、确定目标之后,先进行信息搜集 对目标的先进行ip端口扫描,发现开放了22和80端口 2、访问80端口,为Laravel框架 3、发现该版本为Laravel v8.78.1 (PHP v7.4.3) 漏洞库中搜索,发现该版本的Laravel存在,CVE-2021-3129-Laravel De…

免费格式转换器有哪些?这几款一定要试试

相信在现在的工作中,大家都或多或少需要处理一些文件,有时候我们需要把PDF文件转为word文件,还可能需要将PDF文件转为PPT文件等等,这个时候我们就需要选择一款好用的格式转换器,如果转换文件量比较大的小伙伴们还需要重…

odoo16 修改odoo加载过程

在odoo加载过程中&#xff0c;title处会显示odoo以及odoo标签图片&#xff0c; 所以我们可以进行修改&#xff0c;将其公司化 1. 修改无公司名称时显示字样 <title t-esc"title or Odoo"/> <!--路径&#xff1a;addons/web/views/webclient_templates.xml…

2022.12 青少年软件编程(Python) 等级考试试卷(一级)

2022年12月 青少年软件编程&#xff08;Python&#xff09; 等级考试试卷&#xff08;一级&#xff09; 分数&#xff1a; 100 题数&#xff1a; 37 一、 单选题(共 25 题&#xff0c; 共 50 分) 1. 关于Python语言的注释&#xff0c;以下选项中描述错误的是&#xff1f;&#…

ThinkpadCPU锁频0.4G问题

1.问题描述 Thinkpad型号&#xff1a;E15 CPU&#xff1a;i5-10210U1.6GHz 系统&#xff1a;Win10家庭版 ThinkpadCPU锁频0.4G&#xff0c;具体是过程是今天我需要去楼下打印东西&#xff0c;要带着笔记本电脑&#xff0c;拔掉电源我就去楼下。 刚开始还是好好的&#xff0c;…

PyQt5 serial模块-串口小工具

PyQt5 serial模块-串口小工具串口简述serial模块参数方法使用模板串口工具示例串口简述 异步串行是指UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;通用异步接收/发送。UART是一个并行输入成为串行输出的芯片&#xff0c;通常集成在主…

java 基础练习 圆的面积

问题描述给定圆的半径r&#xff0c;求圆的面积。输入格式输入包含一个整数r&#xff0c;表示圆的半径。输出格式输出一行&#xff0c;包含一个实数&#xff0c;四舍五入保留小数点后7位&#xff0c;表示圆的面积。说明&#xff1a;在本题中&#xff0c;输入是一个整数&#xff…

Oracle通过数据库链连接KingbaseES

测试环境&#xff1a; ip数据库版本192.168.254.135oracle 11g192.168.254.137V008R006C005B0023 通过oracle官网得知&#xff0c;Oracle使用DG4ODBC作为连接到其他非Oracle数据库的数据网关。其原理图如下&#xff1a; 所以我们需要在Oracle服务器安装unixODBC和KingbaseES的O…

4 位硬科技创始人对谈 DevOps 硬件实战

随着 DevOps 技术更为广泛地在各行各业应用&#xff0c;从公司层面来看&#xff0c;考察的不仅仅是 DevOps 平台的技术&#xff0c;更多的是 DevOps 平台与企业产品的兼容性与企业文化能否为 DevOps 提供落地的土壤&#xff0c;这背后是商业模式、思维方式、管理理念的一系列变…

【项目实战】一文讲解车企是如何做HTTPS双向认证的

一、背景 很多主机厂都说需要做HTTPS的双向认证&#xff0c;那到底什么是双向认证呢&#xff1f; 二、什么是Https的双向认证&#xff1f; 英文是Mutual TLS HTTPS双向认证是一种安全通信方式&#xff0c;它需要在客户端和服务端之间进行双向身份验证。在这种方式中&#x…

2.浅谈计算机系统(硬件+软件)。

一、现代计算机系统是由哪两部分组成的&#xff1f;1.什么是物联网&#xff1f;2.有些计算机是非常复杂的。二、计算机系统简介。计算机系统的构成&#xff08;硬件、软件&#xff09;。三、软件。1.系统软件。2.应用软件。思维导图是清菡本人所画。一、现代计算机系统是由哪两…

C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(一)

C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(一) 测试软件: TIA PORTAL V15.1 S7-PLCSIM ADVANCED V3.0 Visual Studio 2019 如下图所示,打开S7-PLCSIM ADVANCED V3.0仿真软件,新键一个实例,设置仿真PLC的IP地址等参数,然后点击Start激活PLC, 如下图所示,…

蓝牙耳机怎么连接电脑?无线耳机连接电脑的教程

想要减少噪音&#xff0c;更好地聆听音乐&#xff0c;或者是看电视&#xff0c;很多人都会选择戴耳机。其中蓝牙耳机成为越来越多人的选择&#xff0c;它方便携带&#xff0c;没有有线的缠绕。 可能有人会问&#xff1a;无线蓝牙耳机可以连接电脑吗&#xff1f;当然可以。可是…

【3 - 数据预处理】菜菜sklearn机器学习

课程地址&#xff1a;《菜菜的机器学习sklearn课堂》_哔哩哔哩_bilibili 第一期&#xff1a;sklearn入门 & 决策树在sklearn中的实现第二期&#xff1a;随机森林在sklearn中的实现第三期&#xff1a;sklearn中的数据预处理和特征工程第四期&#xff1a;sklearn中的降维算法…

前端使用xlsx-js-style导出Excel文件并修饰单元格样式

xlsx-js-style安装引入需要导出的数据源将数据源转成需要的二维数组定义 Excel 表头将定义好的表头添加到 body 中将二维数组转成 sheet!merges 设置单元格合并!cols 设置列宽!rows 设置行高创建虚拟的 workbook向 workbook 中添加 sheet导出 workbook完整示例效果图总结安装 …

elasticsearch实现简单的脚本排序(script sort)

文章目录1、背景2、分析3、构建数据3.1 mapping3.2 插入数据4、实现4.1 根据省升序排序4.1.1 dsl4.1.2 运行结果4.2 湖北省排第一4.2.1 dsl4.2.2 运行结果4.3 湖北省排第一&#xff0c;其余省升序排序&#xff0c;按照年龄倒序4.3.1 dsl4.3.2 java代码4.3.3 运行结果5、完整代码…

【自学Python】Python逻辑运算符

Python逻辑运算符 Python逻辑运算符教程 在 Python 中&#xff0c;逻辑运算符用于连接多个条件&#xff08;一般来讲就是关系表达式&#xff09;&#xff0c;最终的结果是一个 bool 值。Python 的逻辑运算符主要包括 and&#xff08;逻辑与&#xff09;、or&#xff08;逻辑或…

ArcGIS基础实验操作100例--实验88按距离分配空间

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 空间分析篇--实验88 按距离分配空间 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

[白嫖]利用百度图片缓存规则作为图床

利用百度图片缓存规则作为图床先看一张图片&#xff1a;这张图片引用了百度的图片服务器&#xff1a;https://gimg2.baidu.com/image_search/srcpicx.zhimg.com/v2-a6f0db9230a0e4b67e70524217e009fe_1440w.jpg&app2020但实际上这张图片的源站在知乎&#xff1a;https://pi…

Nginx与LUA(2)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e;除了反向代理&#xff0c;Nginx另一个主要的功能就是「负载均衡」。所谓负载均衡&#xff0c;就是将请求分摊到多个服务器上执行&#xff0c;从而减轻单台服务器的…