Python中if __name__ == ‘__main__‘

news2025/1/19 3:06:11

1. 在Python中,凡是以两个下划线开头,两个下划线结尾的变量叫做“魔法变量”。瓦特?魔法变量?对,你没有听错,就是魔法变量。所谓魔法变量就是Python对象内置天生就有的属性变量,你使用这些变量前不需要自己去定义,直接用就是。当然,既然是天生就有的,你也别去修改它,正常使用就好。
2. Python中每个py文件都叫一个模块。系统里面我们经常导入的模块,比如什么os啊,math啊,这些它们的本质都是一个个的py文件。我们自己写的每个py文件也都是一个个的模块,咱们可以把它看成是一个自定义模块。模块既然就是Python文件,那么它就有两种运行方式:一种是直接运行,另外一种是导入别的模块中再运行。

3.__name__这个魔术变量存在于Python的每个模块对象中,也就是说,按照我们上面的说法,每个py文件都有一个__name__属性。

创建项目   自动产生main.py, 该文件中写一句代码

打印结果

在建两个文件,分别是demo.py, study.py    ,两个文件中分别只写一句代码:

在main.py中import demo    ,import study 

运行main.py,输出结果为:

说明两点:首先,当模块A被导入到模块B中时,一旦运行模块B,模块A中的语句会自动被执行一遍,以便加载模块A中的所有函数定义啊、类定义等语句到内存中等待被使用。所以,正是基于这个行为,运行main.py这个文件时,其实就相当于自动运行了一次demo.py和study.py。第二点,当模块是以“被导入”的方式运行时,它的__name__属性会自动变成该模块的名字,这就是为什么运行main.py打印出来的是“demo”和“study”而不是“__main__”的原因。

定义一个模块时会写if __name__ == "__main__": 这个语句了,这个if语句的条件只有当这个模块被直接运行时才会满足,当这个模块被导入别的模块时是不会被满足的。所以,凡是想让某些代码只在直接执行当前模块时运行,就把这些代码放到这个if语句下面即可,这就是这个语句存在的意义。

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

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

相关文章

开关电源测试方案介绍:如何进行电源耐压测试?

耐压测试是检验电源模块、电器设备等承受过压能力的测试方法,同时电源模块耐压测试还可以检测出设备的绝缘性能。在电气设备的使用过程中会出现电压突然上升的情况,有时也会因为天气原因出现高压,如果耐压性能弱,设备绝缘能力差&a…

【Java学习之道】SQL语言的基本语法与操作

引言 对于初学者来说,数据库编程可能听起来有些复杂,但实际上,只要掌握了SQL语言的基本语法和操作,你就能够轻松地处理各种数据问题。本章将为你揭示SQL语言的魅力,帮助你快速入门数据库编程。 一、SQL语言简介 SQL…

Three.js柏林噪音 流动球体

代码:https://gitee.com/honbingitee/three-template-next.js/tree/shader/ 参考油管视频:https://www.youtube.com/watch?voKbCaj1J6EI 核心: 创建循环的图形 应用噪声 顶点按照法相偏移 CustomMaterial(): ShaderMaterial {const material…

轻松上手,制作电子期刊就这么简单

嗨,年轻的朋友们!你是否想过用你的创意和热情来制作一本属于自己的电子期刊?现在,这个梦想已经触手可及!只需要用到这款工具即可轻松上手,就能拥有自己的电子期刊 工具:FLBOOK在线制作电子杂志平…

工具类app变现难?工具类产品广告变现策略实用指南

工具类app面临着买量成本高,收益提升难 的困境,在不同的变现周期可以采用不同的变现策略。#APP广告变现# 1、合理挖掘变现场景,提升eCPM 工具类 App 可基于自身产品属性和用户使用习惯路径,相应地选择开屏广告、信息流、横幅、…

品牌线上布局思路有哪些,品牌策略分析!

电商运营是现代企业宣推和销售产品的重要方式之一。要让品牌产品在电商节点,实现流量获取,就必须制定详细有效的品牌策略。今天为大家带来品牌线上布局思路有哪些,品牌策略分析! 不同于线下销售广告,针对电商平台&…

浅谈压力测试的重要目标及意义

随着互联网应用的快速发展,软件系统的稳定性和性能成为了用户和企业关注的焦点。用户期望应用程序能够在高负载下依然保持稳定和高效。为了满足这一需求,压力测试成为了不可或缺的一环。本文将探讨压力测试的重要性以及如何进行压力测试。 一、压力测试的…

[正式学习java③]——字符串在内存中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。

一、字符串 1.字符串在内存中的存储方式 🔥在java中,内存中有两个地方可以存储字符串,一个是字符串池,一个是堆内存,串池中的字符串不会重复,而堆中的字符串每次都会开辟一块新的空间,因为维护…

Python武器库开发-基础篇(三)

基础篇(三) 函数 下面是一个打印问候语的简单函数,名为greet_user() : greeter.py def greet_user():"""显示简单的问候语"""print("Hello!")greet_user()这个示例演示了最简单的函数结构。第一行的代码行使…

优雅而高效的JavaScript——防抖和节流

😊博主:小猫娃来啦 😊文章核心:优雅而高效的JavaScript——防抖和节流 文章核心 引言事件处理的性能问题防抖:延迟触发事件基本原理实现防抖的代码示例实际应用场景举例 节流:限制事件触发频率基本原理实现…

传输层协议(TCP/UDP协议)

全文目录 端口号端口号范围划分 传输层UDP协议特点基于UDP的应用层协议 TCP协议确认应答机制(可靠性)延迟应答机制超时重传机制流量控制连接管理机制TIME_WAIT 状态CLOSE_WAIT 状态拥塞控制滑动窗口 TCP、UDP对比TCP的listen第二个参数 端口号 在套接字…

【算法设计zxd】第5章分治法

目录 分治算法策略的设计模式 分治思想: 分治算法求解问题的步骤: 设计模式 算法分析 二分查找算法 思考题 计算模型: 时间复杂度分析: 代码: 分治*大数乘法: 【例5-2】设X, Y是两个n位的十进制…

掌动智能分析云性能监控的重要性

云计算已成为现代企业的核心基础设施,它为企业提供了灵活性、可扩展性和成本效益。然而,将业务迁移到云上并不意味着问题就此消失。企业必须仍然保持对其云基础设施和应用程序的严格监控,以确保其性能和可靠性。本文将深入探讨企业云性能监控…

共享模型之管程

1、共享带来的问题 线程出现问题的根本原因是因为线程上下文切换,导致线程里的指令没有执行完就切换执行其它线程了,下面举一个例子 Test13.java static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 …

学习最优化课程中的一些疑惑

感谢gpt I: 你是一个数学专业教授,请给我讲解一下卡氏积的含义 GPT: 卡氏积(Cartesian product)是集合论中的一个概念,用来描述两个集合之间的关系。假设有两个集合A和B,卡氏积A B定义为所有有序对 (a, b)&#xf…

【Mysql】InnoDB数据页结构(五)

概述 页是InnoDB存储引擎管理存储空间的基本单位,一个页的大小默认是16KB 。InnoDB 为了不同的目的而设计了许多种不同类型的页 ,比如存放记录的索引页,存放表空间头部信息的页,存放 Insert Buffer信息的页,存放 INOD…

23 种设计模式详解(C#案例)

🚀设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时…

力扣-消失的数字(两种方法)

题目内容: 方法1: 根据题目我们可以知道这个数组的内容是0~N的数字,而那个消失的数字就是也是这个0~n其中一个,那么我们可以得到0~N所有的数字之和后,再将数组中的数字全部减去,那么我们就得到了那个~消失…

项目播报 | 璞华科技助力苏州巨迈科构建数字化管理体系

项目播报 近日,苏州巨迈科智能科技有限公司(以下简称:苏州巨迈科)签约璞华科技实施PLM项目,建立苏州巨迈科统一的研发管理平台,实现产品数据在部门间的共享,提升企业技术管理水平和综合竞争力&…

【Java 进阶篇】JavaScript 动态表格案例

在这篇博客中,我们将深入了解JavaScript如何创建和操作动态表格。我们将从头开始构建一个动态表格,并逐步添加各种功能,使其能够实现数据的添加、删除和编辑。这个示例将有助于理解如何在前端开发中使用JavaScript创建交互性强大的表格。 准…