python中的__name__是个啥?

news2024/9/23 15:31:19

pycharm中随便打开一个文件,在special variables中能看到一个__name__的变量
在很多python脚本中,也经常能看到if name == "main"这样一行
所以_name_到底是个啥?
首先,我们可以确定这是一个str字符变量
在这里插入图片描述
“在 Python 中,name 是一个特殊的内置变量,它用于表示一个模块的名称。具体来说,它表示当前模块的名称或正在执行的脚本的名称。”
上面这句话是个官方解释,有可能有点云里雾里,看懂了又好像不懂。那是因为我们对模块和脚本这些概念不是十分清晰。
先来解释一下脚本(script):脚本通常指一段可以直接执行的代码,以 .py 扩展名结尾。也就是平常自己写的py文件就是一个脚本。
模块(module):模块也是py文件,只不过这个py文件有概念上的规范和限制,不是所有py文件都可以叫模块,必须是用来封装代码、使代码可以被重复使用、可以在不同的脚本中被导入和调用的py文件才称得上是module
所以可以简单的理解:脚本就是广义的py文件(py文件也就是Python文件),模块是狭义的py文件,它们都是py文件。

ok,讲完了脚本和模块,说回正题。

当一个 Python 脚本被直接运行时,它的 name 会被设置为 “main”,表示该脚本正在作为主程序执行。而当一个模块被导入到其他脚本中时,它的 name 会被设置为模块的名称。这样一来,当你希望某个模块在被直接运行时执行一些特定的操作,但在被其他模块导入时不执行这些操作。通过将这些可执行的代码放在 if name == “main”: 条件判断内部,这些代码只有在模块作为主程序运行时才会被执行。这样,当你直接运行模块时,这些代码会被执行,但如果你将模块导入到其他地方,这些代码就不会执行。通过这种机制,你可以将模块中的功能区分为两种类型的代码,使代码更具模块化和可重用性。这也能确保在导入模块时不会执行无关的操作,只有在需要的时候才会执行。

现在,你明白了吗

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

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

相关文章

06_布隆过滤器BloomFilter

06——布隆过滤器BloomFilter 一、是什么 由一个初始值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素 设计思想: 1. 目的:减少内存占用 1. 方式:不保存数据信息,只是在内存中做一个是否存…

【框架类】—MVVM框架

一、MVVM框架有哪些 Vue.jsReact.jsAngular.js 二、对MVVM的认识 1. MVC是什么 全称 Model View Controller, 它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离 2. MVVM的定义 MVVM是一种软件架构模式,它代表了模型 --视…

智慧工地监管一体化云平台源码 PC端、 手机端、 现场端

智慧工地管理平台是以物联网、移动互联网技术为基础,充分应用大数据、人工智能、移动通讯、云计算等信息技术,利用前端信息采通过人机交互、感知、决策、执行和反馈等,实现对工程项目內人员、车辆、安全、设备、材料等的智能化管理&#xff0…

Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中两则分享,不代表全部内容都是该主题,特此声明。 本周刊由 Python猫 出品,精心筛选国内外的 250 信息源,为你挑选…

Linux(入门篇)

Linux(入门篇) Linux概述Linux是什么Linux的诞生Linux和Unix的渊源GNU/LinuxLinux的发行版Linux VS Windows Linux概述 Linux是什么 Linux是一个操作系统(OS) Linux的诞生 作者:李纳斯托瓦兹(git也是他开发的😂&am…

11. 实现业务功能--获取用户信息

目录 1. 实现 Controller 2. 单体测试 3. 修复返回值存在的缺陷 3.1 用户的隐私数据:密码的密文和盐不能显示 3.2 将值为 null 的字段可以进行过滤 3.3 时间的格式需要进行处理,如 yyyy-mmmm-ddd HH:mm:ss 3.4 data 属性没有返回 4. 实现前端页…

低代码平台全套源码,支持二次开发

低代码开发平台:只需要编写简单的配置文件即可构建企业级应用程序。 一、低代码PaaS平台可以在云端开发、部署、运行低代码应用程序。使用独立数据库模型,基于Kubernetes云原生技术,每个租户均可拥有一套独立的存储、数据库、代码和命名空间&…

光栅化之扫描填充三角形

重心坐标计算 重心坐标比较简单,取最大包围合再计算点是否在三角形内就行,再根据重心坐标返回的alpha,beta,gamma三个权重值计算 uv映射和depth深度缓冲值,因为是求的重心坐标,感觉效果比插值的要好一点。 求重心坐标 barycentr…

Qt 编译使用Bit7z库接口调用7z.dll、7-Zip.dll解压压缩常用Zip、ISO9660、Wim、Esd、7z等格式文件(一)

bit7z一个c静态库,为7-zip共享库提供了一个干净简单的接口 使用CMAKE重新编译github上的bit7z库,用来解压/预览iso9660,WIm,Zip,Rar等常用的压缩文件格式。z-zip库支持大多数压缩文件格式 导读 编译bit7z(C版本)使用mscv 2017编译…

C# 把dll打包到exe文件,真的可以 。文件批量转了ANSI编码

在 C# 中,将 DLL 文件打包到 EXE 文件中可以使用 ILRepack 工具。ILRepack 是一个开源的工具,可以合并多个 DLL 文件并将它们嵌入到一个 EXE 文件中,从而实现将 DLL 打包到 EXE 的功能。 以下是使用 ILRepack 工具打包 DLL 到 EXE 的步骤&…

CSDN今日热榜词云图

文章目录 C云原生人工智能和Python前沿技术软件工程后端javajavascriptphp区块链大数据移动开发嵌入式开发工具数据结构与算法微软技术测试游戏网络运维 C C果然还是应试语言,真题的占比竟然这么大。C之所以没出现,很有可能是在做词云的时候把加号当作非…

多人联机对战游戏赛道,你准备好了吗?

用户日益增长的精神需求和社交娱乐需要,让联机对战的需求与日剧增。 硬件和网络技术的高速发展,也使得联机游戏的体验越来越好。 可以看到,越来越多的联机对战游戏登上游戏榜单。 联机对战已逐渐成为主流,无论在哪个游戏榜单&…

二,MySQL数据库主从复制的介绍及搭建(收藏)

一,介绍概述 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 DDL:数据定义语言,用…

HRS--人力资源系统(Springboot+vue)--打基础升级--(二)写个主菜单导航界面

1. 华为OD机考题 答案 2023华为OD统一考试(AB卷)题库清单-带答案(持续更新) 2023年华为OD真题机考题库大全-带答案(持续更新) 2. 面试题 一手真实java面试题:2023年各大公司java面试真题汇总--…

计算机 数进制转换;存储MB与带宽Mbps

参考:https://zhuanlan.zhihu.com/p/459817484 1、计算机 数进制转换 1)与十进制相关的转换 2)与二进制相关的转换 二进制是Binary,简写为B;八进制是Octal,简写为O;十进制是Decimal&#xff…

117页数字化转型与产业互联网发展趋势及机会分析报告PPT

导读:原文《》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 喜欢文章,您可以点赞评论转发本文,了解更多内容请私信:方…

Ubuntu16.04-ros-kinetic环境搭建笔记=1=

tips:搬运资料,留个记录 安装Ubuntu Ubuntu官网下载地址 安装 虚拟机安装Ubuntu 最好断网安装Ubuntu,可以节约时间 Ubuntu基础设置 Ubuntu换国内源 换成清华源 sudo apt upgradeVMwareTool安装 把这个压缩包拖到桌面,否则只读…

PyTorch翻译官网教程-TEXT CLASSIFICATION WITH THE TORCHTEXT LIBRARY

官网链接 Text classification with the torchtext library — PyTorch Tutorials 2.0.1cu117 documentation 使用torchtext库进行文本分类 在本教程中,我们将展示如何使用torchtext库来构建用于文本分类分析的数据集。 使用迭代器访问原始数据构建数据处理管道…

JAVA基础知识(四)——面向对象(上)

面向对象(上) 一、面向对象的概念1.1 何谓“面向对象”的编程思想1.2 面向过程(POP)与面向对象(OOP)1.3 面向对象的思想概述 二、类和对象2.1 面向对象的思想概述 三、对象的创建和使用3.1 设计类以及类和对象的使用3.2 类和对象 四、类的成员之一&#…

leetcode 125.验证回文串

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/valid-palindrome/ 思路: 这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换,但是里面是含有数字字符的,所以先统一&#xff…