Python中下划线的含义及用法

article/2025/10/3 20:22:48

        看代码的时候,经常看到各种变量名带各种下划线,有单下划线、双下划线等,主要有五种下划线(按照下划线位置命名类型):

  • 单下划线:_
  • 单下划线变量名:_var
  • 变量名单下划线:var_
  • 双下划线变量名:__var
  • 双下划线变量名双下划线:__var__

1. 单线划线

        单线划线“_”:常用表示临时变量、无关紧要变量和Python REPL中的一个特殊变量。

  •        临时变量:例如在循环中,可用“_”表示循环变量,只适临时应用。

  •        无关紧要变量:当拆分元组时,对于元组中不需要的信息,可以用“_”表示,不用再额外定义变量名,如下:

  •         Python REPL中的一个特殊变量:用于表示python解释器最近一个表达式的结果。当想查看前一个表达式运行结果,又不想事先定义变量名时,可以使用“_”输出前一个结果,如下:

        简单来说,单线划线的主要目的是:对于不重要的变量,不用定义变量名,以免引起变量名混乱。

2. 单下划线变量名

        以单个下划线开头的变量或方法仅供内部使用,无法被调用,如下:

内部使用

        外部调用:无法通过使用通配符导入来从模块中导入所有名称的方法,报错如下:

         可以通过使用常规导入来导入“单线划线变量名”类型的变量,如下:

        简单来说,就是单下划线是一种Python命名约定,表示某个名称是供内部使用的。它通常不是由Python解释器强制执行的,只是对程序员的提示。

3. 变量名单下划线

        当变量名已经存在或为Python关键字时,想继续使用该变量名,则在该变量名后加一个下划线,与已经定义过的变量名或Python关键字区分开来,避免冲突。如下:当变量名“a”已经被定义以后,或者当我们想使用python关键字“class”做变量名时,可以通过在变量名后添加单下划线使用。

 4. 双下划线变量名

        双下划线开头表示私有,仅在当前类中可用,外部、子类均无法调用和继承,但这不是Python设计双下划线开头的初衷和目的,Python设计此的真正目的仅仅是为了避免子类覆盖父类的方法。如下:当我们想在子类中修改父类中“__method”函数时,是无法修改的。

 5. 双下划线变量名双下划线

        __var__:前面和后面加上下划线代表着是系统定义的名字,是魔法方法(魔法方法见https://cloud.tencent.com/developer/article/1909589)。普通变量不能使用此方式来命名。__var__表示当前模块执行过程中的名称,如果该模块执行,则__var__的值为"__main__",如果模块是被导入的,则__var__的值为被导入的模块的模块名字。

        __main__:表示整个工程开始运行的入口。


http://chatgpt.dhexx.cn/article/kx1eQsAr.shtml

相关文章

Python 中下划线的 6 个作用

初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。 1、用在 Python 解释器,表示上一次的执行结果 即使不把 Python 用于编程…

html中的:下划线标签、中划线标签、斜体标记、粗体标记

<!-- 下划线标记 --><b>下划线标签&#xff1a;</b><u>u标签是下划线标签</u><br><!-- 中划线标签 --><b>中划线标题&#xff1a;</b><s>s是中划线标签</s><del>del也是中划线标签</del><br…

多种方法在Markdown加入上划线、中划线、下划线

上划线和下划线不是Markdown自身语法&#xff0c;因此需要一点摸索&#xff0c;特将结果记录于此 中划线 中划线是markdown自身语法&#xff0c;实现起来很简单&#xff1a; ~~中划线~~效果&#xff1a; 中划线 下划线 法一&#xff1a;借助Latex公式 $\underline{\text{…

UILabel,文字添加下划线,中划线

//显示下划线 //中划线 // NSDictionary *attribtDic {NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; //下划线 NSDictionary *attribtDic {NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineS…

CSS文本样式(中划线下划线行高之类的还有color也是)

1.颜色 2.对齐方式 3.首行缩进 4.行高 5.下划线&#xff08;装饰&#xff09; 6.文字跟图片对齐 1.颜色 颜色可以用 单词 表示也可以用 #RGB 表示 RGB代表的就是红绿蓝三种颜色 000000-FFFFFF 或者用 color&#xff1a;rgb&#xff08;0&#xff0…

为文字添加下划线和中划线

Android开发中如何给文字添加下划线和中划线呢&#xff0c;先看一下效果图&#xff1a; 下划线&#xff1a; 中划线&#xff1a; 方式一&#xff1a; //添加下划线 // textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//添加中划线textView.getPaint().setFl…

Python中下划线的5种含义

作者&#xff1a;地球的外星人君 链接&#xff1a;https://zhuanlan.zhihu.com/p/36173202 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 分享一篇文章&#xff1a;The Meaning of Underscores in Python。 本文介…

Python中的下划线到底什么意思?

1. 概述 在Python经常能见到含下划线&#xff08;underscore&#xff09;修饰的的变量和方法&#xff08;如__name__&#xff0c;_var等&#xff09;&#xff0c;这些下划线的作用称之为名字修饰&#xff08;name decoration&#xff09;。在Python中&#xff0c;名字修饰通常…

WPF中的文字修饰——上划线,中划线,基线与下划线

我们知道&#xff0c;文字的修饰包括&#xff1a;空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰方式&#xff0c;按划线的位置&#xff0c;我们可将之分为&#xff1a;上划线、中划线、基线与下划线。如图&#xff1a; 从上至下&#xff0c;分别为上划线…

Java方法重载中返回值的问题

不能通过设置不同的返回值来实现方法重载&#xff0c;这样设置的方法不一定会编译通过&#xff0c;但Class文件中可以共存。 如下 1. 例证 IDEA工具,JDK8测试&#xff1a; 2. 原因 参考自《深入理解Java虚拟机》(第3版)&#xff0c;如图 在Java语言中&#xff0c;要重载&…

Java 方法重载简单小例子

简单讲&#xff0c;方法重载就是为了方便程序员记忆&#xff0c;比如你有say方法需要有好几个功能&#xff0c;写say1,say2又费事还弱智&#xff0c;就可以采用重载. package java03;public class demo1 {// 练习-------------------public int max(int number1, int number2)…

java 重载的特征_Java中方法的重载详解

一、方法的概念 在之前我们学习了方法的定义,方法实现指定功能的代码块的组合&#xff0c;基本的定义 如下: DEMO&#xff1a;定义一个方法 不需要return语句的方法 二、方法的重载 在开发中很可能在一个类中出现多个功能相似的方法&#xff0c;但是方法的命名要求是见名知意&a…

Java方法覆盖与方法重载

Ps&#xff1a;括号中的内容为自身理解&#xff0c;看到可以略过。本人喜欢想些乱七八糟的东西。 类继承&#xff1a;子类继承父类的状态和行为&#xff0c;同时也可以具有自己的特征。 &#xff08;简单来讲&#xff0c;就是基因&#xff08;非private&#xff09;继承&#…

什么叫java方法重载?

方法重载是指在一个类中定义多个同名的方法&#xff0c;但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时&#xff0c;Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同…

Java 方法重载习题答案

基础题目 第一题&#xff1a;语法练习 语法点&#xff1a;方法定义&#xff0c;方法重载 按步骤编写代码&#xff0c;效果如图所示&#xff1a; 编写步骤&#xff1a; 定义类 Test1,类中定义 main方法,定义int类型a为10, b为10.定义printNum方法,参数为(int iVar, int iVar…

java中方法重载

重载的三个要求&#xff1a;1.在同一个类中&#xff0c;2.同一个方法名&#xff08;不用在意返回值&#xff09;&#xff0c;3.不同的参数&#xff08;参数个数&#xff0c;参数类型&#xff09; 使用重载可以记住一个方法名&#xff0c;使用不同形参&#xff0c;完成不同类似的…

JAVA方法重载优先级

JAVA方法重载优先级 该方法正常执行&#xff0c;没有报空指针异常&#xff0c;是因为调用了&#xff0c;String类中的如下方法&#xff1a; 由于图一valueOf方法中传入的参数为Object类型&#xff0c;所以调用了该方法。 接下来看上面的方法执行结果&#xff0c;报了空指针异…

ROS学习笔记(一)#ROS系统及RoboWare的安装

0.前言 本人目前研一在读&#xff0c;学习&#xff32;&#xff2f;&#xff33;机器人也有半年多了&#xff0c;开此博客决定把&#xff32;&#xff2f;&#xff33;学习从新捋一遍&#xff0e;目前使用Ubuntu 16.04 ROS-&#xff2b;inetic。 1.ROS安装 电脑选择这个教程…

ubuntu18.04 安装 roboware-studio

RoboWare Studio是一个ROS集成开发环境。与ROS匹配性比起其他IDE更好&#xff0c;可以用它开发 ROS更加简单、并且在官网ros wiki中有详细的使用教程。本文主要是在Ubuntu18.04中安装RoboWare Studio。 1.输入指令安装必要的编译程序必须软件包 sudo apt-get install build-es…

ROS集成开发环境 --- RoboWare(安装及学习笔记)

后附 RoboWare中文教程网盘链接 DesignerStudioViewer RoboWare Studio是什么 v1.2.0 32位 debv1.2.0 64位 debv1.2.0 使用手册 pdf RoboWare Studio是一个ROS集成开发环境.使ROS开发更加直观、简单&#xff0c;并且易于操作.可进行ROS工作空间及包的管理&#xff0c;代码编…