我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解Python单下划线和双下划线使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解Python单下划线和双下划线使用

在Python编程中,我们经常会遇到单下划线(_)和双下划线(__)的使用。它们在命名标识符、变量、方法和属性中扮演着不同的角色。本文将详细解释Python中单下划线和双下划线的含义和用法,并通过代码示例进行讲解,帮助你理解它们的作用和适用场景。

一、单下划线(_)的使用

  1. 命名约定。在Python中,单下划线作为命名约定,用于表示某个变量、方法或属性是内部使用的或具有特定含义,但不希望在外部直接访问。

代码示例:

# 单下划线作为命名约定class MyClass:    def __init__(self):        self._internal_var = 42    def _internal_method(self):        return "Internal method"    def public_method(self):        return self._internal_method()

在上面的例子中,变量_internal_var和方法_internal_method都以单下划线开头。这是一种约定,告诉其他开发人员这些成员是类内部使用的,不建议在类外部直接访问。公共方法public_method可以访问内部方法_internal_method。

  1. 避免命名冲突。单下划线还可以用于避免命名冲突。当我们在导入模块时,可以使用单下划线作为前缀,以避免与当前命名空间中的其他标识符冲突。

代码示例:

# 避免命名冲突from mymodule import my_function, _internal_function

在上面的例子中,通过使用单下划线前缀导入_internal_function函数,我们可以明确指定该函数是模块的内部使用,而不是公共接口。

  1. 临时变量。在一些情况下,我们可能只需要临时使用某个变量,而不关心它的具体值。此时,可以使用单下划线作为变量名,表示它是一个无关紧要的临时变量。

代码示例:

# 使用单下划线作为临时变量for _ in range(5):    print("Hello!")

在上面的例子中,循环变量被命名为单下划线,这告诉其他开发人员循环变量的具体值并不重要,只需要执行循环体内的代码5次即可。

  1. 引入未使用的变量。有时候,在编码过程中我们可能会定义一些变量,但在后续的代码中并没有使用它们。为了避免出现未使用变量的警告,可以使用单下划线作为变量名。

代码示例:

# 引入未使用的变量_, y, _ = (1, 2, 3)

在上面的例子中,我们使用单下划线占位符引入了一个未使用的变量。这样做可以告诉读者,我们在意识到该变量存在但并不关心它的具体值。

二、双下划线(__)的使用

  1. 名称修饰。双下划线用于名称修饰,即将属性或方法前面的双下划线作为前缀,使其成为私有成员。私有成员只能在类内部访问,无法在类外部直接访问。

代码示例:

# 双下划线作为名称修饰class MyClass:    def __init__(self):        self.__private_var = 42    def __private_method(self):        return "Private method"    def public_method(self):        return self.__private_method()obj = MyClass()print(obj.public_method())  # 输出:Private methodprint(obj.__private_var)  # 报错:AttributeError: 'MyClass' object has no attribute '__private_var'

在上面的例子中,属性__private_var和方法__private_method都以双下划线开头,它们被视为私有成员。在类外部无法直接访问私有成员,但可以通过公共方法public_method间接访问。

  1. 名称改写。双下划线还可用于名称改写(name mangling),即将属性或方法前面的双下划线和类名组合起来,以防止子类意外覆盖父类的属性或方法。

代码示例:

# 名称改写class BaseClass:    def __init__(self):        self.__private_var = 42class DerivedClass(BaseClass):    def __init__(self):        super().__init__()        self.__private_var = 10  # 不会改写父类的私有属性obj = DerivedClass()print(obj._BaseClass__private_var)  # 输出:42print(obj._DerivedClass__private_var)  # 输出:10

在上面的例子中,BaseClass定义了一个私有属性__private_var,DerivedClass继承自BaseClass并定义了一个同名的私有属性。通过名称改写,我们可以分别访问父类和子类的私有属性。

  1. 魔术方法。双下划线在魔术方法中也扮演着重要的角色。魔术方法是一种特殊的方法,用于在特定情况下自动调用,从而实现对对象的特定行为进行定制。

代码示例:

# 魔术方法class MyClass:    def __init__(self, name):        self.name = name    def __str__(self):        return f"MyClass object (name: {self.name})"obj = MyClass("Alice")print(obj)  # 输出:MyClass object (name: Alice)

在上面的例子中,__str__是一个魔术方法,用于在使用print函数打印对象时自动调用。通过重写__str__方法,我们可以自定义对象的字符串表示形式。

三、总结

本文详细解释了Python中单下划线和双下划线的使用。单下划线作为命名约定、避免命名冲突、临时变量和引入未使用的变量等方面发挥作用。双下划线用于名称修饰、名称改写和在魔术方法中扮演重要角色。掌握单下划线和双下划线的使用,将帮助你更好地理解和应用Python编程中的命名约定、代码组织和对象行为定制。

来源地址:https://blog.csdn.net/meridian002/article/details/131468826

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解Python单下划线和双下划线使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 函数、变量中单下划线和双下划线的区别详解

本文主要介绍了python 函数、变量中单下划线和双下划线的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-28

python变量中单下划线和双下划线的区别是什么

python变量中单下划线和双下划线的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量的定义在Python中,有以下几种方式来定义变量:xx:公有变量_xx:前
2023-06-02

Python中私有属性“_“下划线和“__“双下划线区别

本文主要介绍了Python中私有属性“_“下划线和“__“双下划线区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-08

python里面单双下划线的区别详解

本文主要介绍了python里面单双下划线的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-17

浅谈python 里面的单下划线与双下划线的区别

在学习Python的时候,很多人都不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加,比如像 __this__ 这种。在我看到上面的文章之前,我一直以为Python中这些下划线的作用就像Golang中方法/函数的大小
2022-06-04

Python中私有属性下划线和双下划线的区别是什么

今天小编给大家分享一下Python中私有属性下划线和双下划线的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Py
2023-07-05

Python中单、双下划线的区别总结

前言 Python 的代码风格由 PEP 8 描述。这个文档描述了 Python 编程风格的方方面面。在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格。这样就易于阅读,易于在程序员之间交流。 我们大家在
2022-06-04

python中单双下划线的区别对比分析

Python中存在一些特殊的方法,有些方法以双下划线“__”开头和结尾,它们是Python的魔法函数,比如__init__()和__str__等等,不用要这种方式命名自己的变量或者函数,这篇文章主要介绍了python里面单双下划线的区别,需要的朋友可以参考下
2023-05-17

python中双下划线的作用是什么

python中双下划线的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的数据类型有哪些?python的数据类型:1. 数字类型,包括int
2023-06-14

Python下划线有什么用

小编给大家分享一下Python下划线有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、用在 Python 解释器,表示上一次的执行结果即使不把 Pytho
2023-06-22

详解Python中下划线的5种含义

目录1. 单引号下划线 _var2. 单尾划线 var_3. 双首下划线 __var__baz出什么情况了?4. 双前导和双末尾下划线 _var_5.单下划线 _Python下划线命名模式 - 小结本文介绍了Python中单下划线和双下划线
2022-06-02

python单下划线指的是什么意思

小编给大家分享一下python单下划线指的是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动
2023-06-14

Python中的下划线有什么用

这篇文章主要介绍“Python中的下划线有什么用”,在日常操作中,相信很多人在Python中的下划线有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中的下划线有什么用”的疑惑有所帮助!接下来
2023-06-03

python中下划线的使用场景有哪些

python中下划线的使用场景有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、_用于临时变量单下划线一般用于表示临时变量,在REPL、for循环和元组拆包等场景中比
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录