Python (十七) __name__ == ‘__main__‘ 作用


程序员的公众号:源1024获取更多资料,无加密无套路!

最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上


作为解释性脚本语言,python程序并没有特定的main()主程序入口,一般都是自顶向下,逐行执行,__name__ == "__main__"可以理解为程序的执行入口。

__name__、__main__

def test():print('this is main1 func')print('__name__:',__name__)print('__main__:','__main__')test() #输出
this is main1 func
__name__: __main__
__main__: __main__

从上面代码可以看到,在main1.py这个文件中,__name__和__main__的值是一样的,所以

__name__ == '__main__' 一直都是True。

接下来看看如果作为模块引用到别的模块的时候,这两个值还一样吗?

import main1
def test():print('this is main2 func')if __name__ == '__main__':test()#输出
this is main1 func
__name__: main1
__main__: __main__
this is main2 func

从输出结果可以看到,__name__的值变成了模块名main1,而__main__的值不变,如果我们只是想调用main2中的test方法,不调用main1中的test方法,我们对main1文件进行修改,如下:

def test():print('this is main1 func')print('__name__:',__name__)print('__main__:','__main__')if __name__ == '__main__':test()    

从上面的代码示例中,我们可以得出结论:

___name__==  '__main__' 的主要作用就是为了控制函数逻辑在其他模块中引入时不执行。


系列文章索引

Python (一) 操作Mysql

Python (二) 读写excel文件

Python (三) 读写csv文件

Python (四)读写word

Python (五) 处理图像

Python (六) 绘图

Python(七)操作JSON

Python (八)网络编程

 Python (九)requests

 Python (十) operator

Python (十一)多线程

Python (十二) NumPy操作

Python (十三) pandas(一)

Python (十四)pandas(二)

 Python (十五)pandas(三)


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

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

相关文章

『番外篇十』SwiftUI 实战:打造一款“五脏俱全”的网络图片显示 App(下)

概览 在上篇文章中,我们初步实现了一款小巧的网络图片显示器。 我们先是创建了 json 数据对应的图片模型,然后将 App 界面“分而治之”划分为独立的三个组件以便“逐个击破”,最后我们将所有这些融合在一起。 不过,目前的实现仍有一些问题。比如我们添加了一层不必要的 …

DS|哈夫曼编码及应用

题目一:DS树 -- 赫夫曼树的构建与编码 题目描述: 给定n个权值,根据这些权值构造huffman树,并进行huffman编码 注意数组访问是从位置1开始 要求:赫夫曼的构建中,默认左孩子权值不大于右孩子权值 输入要…

用LCD循环右移显示“Welcome to China“

#include<reg51.h> //包含单片机寄存器的头文件 #include<intrins.h> //包含_nop_()函数定义的头文件 sbit RSP2^0; //寄存器选择位&#xff0c;将RS位定义为P2.0引脚 sbit RWP2^1; //读写选择位&#xff0c;将RW位定义为P2.1引脚 sbit EP2^2; //使能…

数据分析-25-电商用户行为可视化分析

文章目录 0. 数据代码获取1. 项目介绍1.1 分析背景1.2 分析目的1.3 分析思路 2. 数据清洗2.1 加载必要的库2.2 读取数据2.3 统计缺失值2.4 处理数据a. 删除重复值b. 转换时间格式c. 提取日期和时间d. 转换数据类型 3. 分析内容3.1 用户活跃规律a. 日均pv与uvb. 日新增pv、uv趋势…

关于linux权限的相关操作

目录 文件的访问者 文件类型和访问权限 文件权限值的表示 文件访问权限的相关设置 目录的权限 粘滞位 总结 文件的访问者 文件和文件目录的所有者&#xff1a;u&#xff08;User&#xff09;文件和文件目录的所有者所在的组的用户&#xff1a;g&#xff08;Group&#…

专业能力再获赞!棱镜七彩收到中国软件评测中心感谢信

近日&#xff0c;中国软件评测中心&#xff08;工业和信息化部软件与集成电路促进中心&#xff09;发来感谢信&#xff0c;对棱镜七彩在助力信创产业发展过程中所做出的贡献表示感谢&#xff0c;并对棱镜七彩工作人员专业细致、尽职尽责的工作态度和敬业精神进行了高度赞扬。同…

圆通速递单号查询入口,筛选出指定某天签收的单号

随着电商和物流行业的飞速发展&#xff0c;快递单号的管理也成了一个让人头疼的问题。如何快速筛选、整理这些快递单号&#xff0c;成为了提高生活和工作效率的关键。而【快递批量查询高手】的出现&#xff0c;正好可以巧妙的解决上面的问题&#xff0c;下面就来具体看看这款软…

【AWS系列】巧用 G5g 畅游Android流媒体游戏

序言 Amazon EC2 G5g 实例由 AWS Graviton2 处理器提供支持&#xff0c;并配备 NVIDIA T4G Tensor Core GPU&#xff0c;可为 Android 游戏流媒体等图形工作负载提供 Amazon EC2 中最佳的性价比。它们是第一个具有 GPU 加速功能的基于 Arm 的实例。 借助 G5g 实例&#xff0c;游…

HubSpot电子邮件:数字化时代的营销利器

在当今数字化时代&#xff0c;电子邮件仍然是企业与客户之间沟通的重要手段之一。而HubSpot电子邮件作为HubSpot全方位解决方案的一部分&#xff0c;不仅简化了营销流程&#xff0c;更为企业提供了强大的工具&#xff0c;助力建立更紧密的客户关系。本文将深入探讨HubSpot电子邮…

系统安全及应用

1、基本安全措施 1.1、系统账号清理 在Linux系统中&#xff0c;除了用户手动创建的各种账号之外&#xff0c;还包括随系统或程序安装过程而生产的其他大量账号。除了超级用户root之外&#xff0c;其他大量账号只是用来维护系统运作、启动或保持服务进程&#xff0c;一般是不允…

(三)STM32F407 cubemx串口中断通讯

&#xff08;三&#xff09;STM32F407 cubemx串口中断通讯 这篇文章主要是个人的学习经验&#xff0c;想分享出来供大家提供思路&#xff0c;如果其中有不足之处请批评指正哈。废话不多说直接开始主题&#xff0c;本人是基于STM32F407VET6芯片&#xff0c;但是意在你看懂这篇文…

数据结构学习 jz16 数值的整数次方

关键词&#xff1a;快速幂 位运算 之前已经学过快速幂了&#xff0c;所以只是回忆。快速幂有递归版和非递归版。 题目&#xff1a; 这道题和之前的快速幂的区别是 n可能为负数。分类讨论即可。 思路&#xff1a; 区分正负&#xff1a; if (n < 0) return POW(1.0 / x, …