python 下划线_汇总

Python中下划线的含义及用法 Python中各种下划线的含义及使用方法 阅读详情


在Python中,下划线 _ 有多种特殊用途和约定,涵盖了从语法特性到编程习惯的多个层面。以下是其主要应用场景的详细总结:

一、单下划线 _ 的应用

1. 作为临时或无关紧要的变量
# 忽略循环索引
for _ in range(3):
    print("Hello")

# 解包时忽略特定值
name, _, age = ("Alice", "Female", 30)
2. 交互式解释器中的上一个表达式结果
>>> 2 + 3
5
>>> _ * 2  # 使用_获取上一个结果
10
3. 国际化(i18n)中的翻译函数
import gettext
_ = gettext.gettext  # 绑定翻译函数
print(_("Hello, World!"))
4. 在模块导入时隐藏变量
# module.py
_internal_var = 10  # 不会被from module import *导入
PUBLIC_VAR = 20

二、单下划线前缀 _var 的应用

1. 弱私有变量/方法(约定)
class MyClass:
    def __init__(self):
        self._private_var = 10  # 外部仍可访问,但约定不直接使用
        
    def _private_method(self):  # 同上
        pass
2. 模块级私有(导入控制)
# 只导入未以下划线开头的成员
from module import *  # 不会导入_module_var

三、双下划线前缀 __var 的应用

1. 名称修饰(Name Mangling)
class MyClass:
    __private_var = 10  # 被重命名为 _MyClass__private_var
    
obj = MyClass()
print(obj._MyClass__private_var)  # 可以访问,但不推荐
2. 避免子类覆盖方法
class Parent:
    def __private_method(self):  # 被重命名为 _Parent__private_method
        pass

class Child(Parent):
    def __private_method(self):  # 被重命名为 _Child__private_method
        pass

四、双下划线环绕 __var__ 的应用

1. 魔法方法(特殊方法)
class MyClass:
    def __init__(self):  # 构造函数
        pass
        
    def __str__(self):  # 对象转字符串
        return "MyClass"
        
    def __add__(self, other):  # 加法运算符重载
        return MyClass()
2. 内置属性
__name__    # 模块名
__doc__     # 文档字符串
__file__    # 文件名
__class__   # 对象的类

五、组合应用场景

1. 忽略多个值
# 使用*_忽略多个值
a, *_, b = (1, 2, 3, 4, 5)  # a=1, b=5
2. 类中同时使用不同下划线
class Demo:
    def __init__(self):
        self.public = 1        # 公开属性
        self._protected = 2    # 受保护属性(约定)
        self.__private = 3     # 私有属性(名称修饰)
        
    def __magic__(self):        # 魔法方法
        pass

六、总结对比表

符号用途示例
_临时变量、解释器结果、翻译for _ in range(3)
_var弱私有(约定)self._private_method()
__var名称修饰(强私有)self.__private_var
__var__魔法方法/内置属性__init__, __name__
*_解包时忽略多个值a, *_, b = (1, 2, 3, 4)

注意事项

  1. 不要随意定义魔法方法:__var__ 格式是Python保留的,自定义可能导致冲突。
  2. 名称修饰不是真正的私有:仍可通过 _类名__变量名 访问,主要用于避免意外修改。
  3. 遵循社区约定:_var 和 __var 的区别是约定俗成的,Python不强制限制访问。

合理使用下划线可以提高代码的可读性和安全性,是Python编程中的重要实践。

Python中各种下划线使用总结和实例详解 Python中经常出现各种单下划线,双下划线,而且有的在前有的在后,有的是约定俗成的用法,有的则会强制对外隐藏。这一篇我们就一起来把各种下划线的用法说清楚。 我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。 文章目录五种下划线的用法操作环境前置单下划线,例如`_var`后置单下划线,例如`var_`前置双下划线,例如`__var`前后双下划线,例如`__var__`单下划线,也就是单独的`_`总结 五种下划线的用法 Python中下划线有如下五种用法: 前置单下划线,例如_var 后置单下划线,例如var_ 前置双下划 立即下载

相关推荐

mobaXterm连接vmWare虚拟机上的centOS7提示连接失败的解决方法

1.问题描述: mobaXterm安装后连接虚拟机vmWare上的centOS7发现连接不上,如下图所示: 2.解决方法 先是查了一下centOS的ip 开始错误的以为 virbr0: 后面的inet就是虚拟机的IP 实则不然(正确的ip是在ens33后面的inet中的ip,大佬们勿喷) 这个值需要配置一下的,具体配置过程如下: step1: 进入centOS下的/...

hss19214的博客 7890

揭秘Python:下划线的特殊用法,你绝对想不到!

在Python编程中,下划线(underscore)是一个常见而又强大的工具。它不仅仅是一个普通的字符,而是具有特殊含义和用法的符号。今天,我们就来揭开Python下划线的神秘面纱,探索它的各种妙用。

pythondh1的博客 973

脱壳--02.exe

程序开始 使用OD打开程序 发现无法利用esp定律 程序直接运行 查找模块间调用 随便找到一个函数的调用 发现是FF15方式调用 所以是vs的程序 vs程序大致分成两种 vs20xx (特征函数:GetSystemTimeAsFileTime)和 vc++6.0(特征函数:GetVersion) 通过链接器版本 发现是vc6.0 直接在GetVersion上下断点 重新运行程序 断点断下 返回到调用处 vc6.0和易语言的第一个CALL都是GetVers...

weixin_45012273的博客 1112

Python下划线的五个作用介绍,初学者的妙招

初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中间的下划线有哪些用处。以后看到下划线时就可以对号入座了。

2301_80239908的博客 1522

GSEA富集分析实战:从数据准备到结果解读的完整R代码指南

本文提供了一份完整的GSEA富集分析实战指南,涵盖从R环境准备、数据质量控制到基因ID转换、参数优化和结果解读的全流程。通过详细的R代码示例和实用技巧,帮助研究人员高效完成基因集富集分析,特别针对生物信息学中常见的GSEA分析痛点提供了专业解决方案。

weixin_29246195的博客 536

立创开源TinyAWG:基于ZYNQ7010的35MHz带宽200MSa/s任意波形发生器设计与实现

本文详细解析了立创开源TinyAWG的设计与实现,这是一款基于ZYNQ7010芯片的低成本高性能任意波形发生器。项目实现了35MHz带宽和200MSa/s采样率,核心采用ARM+FPGA协同架构,FPGA负责高速DDS信号生成,ARM运行Linux并搭载LVGL图形界面。文章涵盖了硬件选型、电路设计、软件逻辑及性能测试,为复刻和学习ZYNQ系统设计、高速DAC应用提供了完整参考。

weixin_42576467的博客 433

Python下划线用法

【参考】:https://blog.youkuaiyun.com/tcx1992/article/details/80105645 开头或结尾,使用单下划线或双下划线,的变量名、函数名等命名,其对应对象在Python中往往有特殊的使用习惯或作用。 1. Python下划线用法总结 模式 举例 含义 特殊性 独立单下划线 ...

whereiwillgo的博客 1815

避坑指南:STM32H7不同DMA控制器(MDMA/DMA2D/BDMA)到底该用哪个?

本文深入解析STM32H7系列芯片的DMA控制器选型策略,涵盖MDMA、DMA2D、BDMA等不同控制器的架构原理与性能对比。通过实际项目案例,提供高速TCM数据搬运、GUI加速、低功耗传输等场景的选型决策树,并分享性能优化与调试技巧,帮助工程师避开常见陷阱,提升系统效率。

weixin_26876073的博客 447

Python中的下划线(_)的五种用法

前言 在Python中,下划线(_)是特殊的。如果您是python程序员,对于for _ in range(10),以及__init__(self)的语法可能比较熟悉。 这篇文章将解释什么时候以及如何使用下划线(_),并帮助你理解它。 在Python中有5种使用下划线的情况: 1、用于在解释器中存储最后一个表达式的值。 2、忽略特定的值。 3、给变量名或函数名赋予特殊的意义和功能。 4、用作“国际化(i18n)”或“本地化(l10n)”。 5、将数字的值分开。 在解释器中使用时 python解释器将最后一个

qq_40907977的博客 1万+

【3】 灰度变换(1)

第三章(1)【总三】

课题分离 659

【MATLAB代码】UKF组合导航例程,15维状态量、3维观测量。附完整的代码,有中文注释、误差输出图像

摘要 本文提出了一种基于15维误差状态模型的UKF组合导航算法,实现了三维位置、速度和姿态的高精度估计。算法采用严格的误差状态模型,包含位置(3)、速度(3)、姿态(3)、陀螺偏差(3)和加速度计偏差(3)共15个状态量,通过3维GNSS位置观测进行校正。仿真结果表明,相比纯IMU积分,UKF算法能有效抑制误差积累,显著提高导航精度。文中提供了完整的MATLAB源代码,可直接运行并复现三维轨迹对比、位置/速度曲线及误差分析结果。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 311

Python中类的特殊方法(双下划线方法)汇总

Python中类的特殊方法(双下划线方法)汇总

网络资源是无限的 2455

[Dify] 如何在Dify中解析上传的TXT文件内容

在Dify平台上构建智能应用时,解析用户上传的.txt文件是关键步骤。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 2636

python 常用代码段汇总(二) 下划线转驼峰 计算 md5 值

最近一直在写一套基于 python 的 sanic web 框架库的 restFul 接口的底层框架。由于我是初学,挑战这个任务基本上是属于不自量力型的。但目前我核心构架已经完全写出来了,我会在近期整理好相关资料后,写一系列的文章分享给大家。 这个挑战的过程很简单,因为大家知道我只是一个前端工程师。但是挑战的过程充满乐趣,今天,我就将我遇到的一些小的知识点,做一个汇总,也方便以后自己查找和复习。...

FungLeo's Blog 3130

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【代码】Python基础和编程规范

1、copy 和 deepcopy 的区别是什么? python中的对象之间的赋值是按引用传送的。 (1)copy()浅拷贝,只拷贝父对象,不会拷贝对象的内部的子对象。 (2)deepcopy()深拷贝,拷贝父对象及其子对象。 #!/usr/bin/python ## -*-f= coding:utf-8 -*- import copy origin=[1,2,[3,4]] cop1=origin #引用 cop2=copy.copy(origin)#浅拷贝 cop3=copy.deepcopy(origi

发现问题,并解决问题,批判性思维 2213

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python命令入门_入门Python常用命令总结

以下是今天刚学到的和收集的一些最基础的python入门常用命令的汇总。a.反斜杠(\)继续上一行,Python文件以模块形式组织。下划线(_)返回最后一个表达式的值。命令行选项的一些命令:-d提供调试输出-o生成优化字节码-s不导入site模块以启动时查找Python路径-v冗余输出-m mod将一个模块以脚本形式输出-Q opt 除法选项-c cmd运行时以命令行字符串形式提交的Python脚本...

weixin_39673002的博客 96

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python官网下载安装免费,python官网下载安装教程

大家好,小编来为大家解答以下问题,python官网下载安装免费,python官网下载安装教程,今天让我们一起来看看吧!

dghsgzhz12的博客 1256

Python基础(转载总结复习)

优快云-数据分析与统计之美-图文详解 | 33个Python关键字,一口吃掉一个!

小百的博客 216

【Python100天学习笔记】番外篇 Python面试面经、笔试题目汇总

Python面试题汇总 说明:下面的内容源于GitHub上名为interview_python的项目,对其内容进行了修订和补充。 文章目录Python面试题汇总Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @staticmethod和@classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:%和.format9 迭代器和生成器10 `*args` and `**kwargs`1

码农-Vax天道的时间宝藏 1815

python的魔术方法大全

链接:http://testingpai.com/article/1635581135514。作者:nmb_musen。

weixin_45906483的博客 182

python学习总结

列表删除元素可以用del,remove以及pop,我们一般用pop去删除一些特定所索引的元素,用remove删除特定值。

weixin_41188932的博客 602

python 分组计数_为什么Python中有各种各样的“_”下划线?分别有什么作用?

刚开始学Python的你一定很疑惑,为什么Python里会出现各种各样的下划线 “_”,而且位置都不相同,有时候在名称后面,有时候在前面,有时候还会在数字中间......这些下划线都分别代表了什么意思?本文就给大家普及普及。在本文中,我们将介绍 Python 中 _ 字符的不同用法。就像 Python 中的许多其他内容一样,我们会看到 “_” 的不同用法主要是惯例问题。这里我们将介绍的五种不同情况...

weixin_29196613的博客 160

Python中的下划线、双下划线

单下划线和双下划线在Python变量名和方法名中都有各自的含义。有些仅仅是作为约定,用于提示开发人员;而另一些则对Python解释器有特殊含义。

围城客的专栏 1万+

[Python3] Python中单下划线和双下划线的含义

本文介绍了Python中单下划线和双下划线(“dunder”)的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类。 单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。 在本文中,我将讨论以下五种下划线模式和命名约定,以及它们如何影...

進撃の算法 4617

Python中下划线的5种含义

作者:地球的外星人君链接:https://zhuanlan.zhihu.com/p/36173202来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。分享一篇文章:The Meaning of Underscores in Python。本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangling)的工作原理,...

Tian的博客 9万+

Python中的下划线使用教程:单下划线、双下划线和头尾双下划线详解

Python是一种简单、易学、功能强大的编程语言,被广泛应用于各种领域。在Python中,下划线的使用有其特殊的含义和用途。本文将详细介绍Python中的单下划线、双下划线和头尾双下划线的使用教程,帮助读者更好地理解和应用这些特性。

Rocky006的博客 4262
上一篇: python 继承
下一篇: python垃圾回收机制
越甲八千
博客等级 码龄11年 2954粉丝 553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值