Python 中的名称修饰2024 年 8 月 29 日 | 5 分钟阅读 在本教程中,我们将讨论 Python 中的名称修饰过程,以及我们如何使用 Python 中的名称修饰过程与不同的方法。 名称修饰将任何给定的标识符,在其名称前有两个下划线,名称后有一个下划线,文本上替换为__ClassName__Identifier 的过程称为名称修饰。在__ClassName__Identifier 名称中,ClassName 是标识符所在当前类的名称。 图解基本上,上面给出的名称修饰的定义意味着,任何形式为__Jtp 的标识符(在名称前至少有两个下划线,或在名称后最多有一个下划线)将被替换为__ClassName__Jtp(当前类的名称将替换 ClassName),并在 ClassName 中删除前导下划线(S)。 请看下面的例子来理解名称修饰过程。 示例输出 JavaTpoint 说明 我们在上面的程序中定义了一个测试类,并在该类中有一个名称标识符。在测试类内部,我们定义了两个默认函数和一个名为PrintName()的函数。 在PrintName()函数中,我们给出了打印名称的打印命令。然后,我们用测试类初始化了一个 t1 变量。最后,我们使用PrintName()来打印我们在初始化时在 Testing 类中使用的名称。 注意:如果我们尝试在类外部访问 Testing 类的函数和变量,它将引发错误。对 Testing 类中给出的变量所做的任何更改都只能在类内部完成!示例:2输出 JavaTpoint Traceback (most recent call last): File "C:\Users\Manish\Downloads\code.py", line 12, in Python 中的名称修饰Python 中名称修饰过程的实现与我们上面讨论的相同。我们将在 Python 程序中使用不同的方法来实现名称修饰过程并访问其中的变量。 在本节中,我们将执行以下任务:
我们将为每种方法使用一个程序来理解其在 Python 中的实现。 1. 使用 dir() 方法进行名称修饰我们可以使用 dir() 方法来执行名称修饰过程,它将应用于代码中给定的类。Python 解释器将执行类的名称修饰过程。我们可以通过将定义的类对象传递给 dir() 方法来使用它,dir() 方法将返回属于给定类对象的所有有效属性。 请看下面的示例程序来理解这种名称修饰的 dir() 方法。 示例输出 ['_Testing__name', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__'] 说明 正如我们在输出中看到的,我们对初始化的变量 t1 使用的 dir() 方法返回了类 testing 的所有有效属性并打印了它们。我们还可以看到,标识符 __name 的名称被解释器更改为 _Testing__name。 2. 访问名称修饰变量我们甚至可以在类外部访问名称修饰变量并将其打印在输出中(不像访问类变量那样会返回错误)。要在类外部访问名称修饰变量,我们只需在变量前添加 _ClassName,然后我们就可以在输出中打印该值。 请看下面的程序,我们在其中访问了测试类外部的名称修饰变量。 示例输出 The name mangled that we are accessing outside the class: JavaTpoint 说明 我们能够从外部访问 __name 变量,因为它是一个名称修饰变量,它返回了 name 值。 3. 使用方法重写进行名称修饰由于我们在程序中使用名称修饰过程,我们受到限制,因为对私有类成员的有效用例支持有限。对私有类成员有效用例的有限支持是为了避免各种名称与子类中定义的名称发生冲突。只要名称修饰过程按照 Python 类的定义进行,解释器就会进行修饰。而且,它对于程序中的子类非常有帮助,可以让它们在不破坏类内方法调用的情况下覆盖方法。 让我们理解下面的例子。 示例输出 Name mangling process done inside the parent testing class Name mangling process done inside the child sub-testing class 结论首先,在本教程中我们学习了名称修饰过程的介绍。我们还学习了如何使用 dir() 方法在 Python 中进行名称修饰。然后,我们在类外部访问了它们所在的名称修饰变量。最后,我们还学习了如何在程序中为给定的子类使用名称修饰过程和方法重写。 |
简介 众所周知,Python 提供了各种统计库,其中一些非常流行,例如 PyMC3 和 SciPy。这些库为用户提供了各种预定义函数来计算各种测试。但是为了理解过程背后的数学原理,有必要...
7 分钟阅读
Python 是一种高级、著名的解释型编程语言,由 Guido van Rossum 于 1991 年推出。截至 2022 年,Python 的需求量很大。Web 设计、数据处理、深度学习、信息科学、数据可视化、脚本编写以及其他领域都使用 Python。Python 是一种多功能且易于学习的计算机……
7 分钟阅读
当我们处理 Python 字典时,我们可能会遇到需要从字典中获取选择性键值总和的问题。这个问题可能发生在 Web 开发领域,让我们看看以下解决问题的方法。方法……
阅读 3 分钟
PyQt5 是一个功能强大的 Python 库,提供各种小部件用于构建图形用户界面。用于输入数值的重要小部件之一是 QDoubleSpinBox。它是 QSpinBox 小部件的高级版本,允许客户输入十进制数...
阅读 4 分钟
在本教程中,我们将编写 Python 程序来查找给定列表中的更大元素。更大的元素是指数组中紧邻当前元素右侧且大于当前元素的元素。让我们看一下问题陈述。问题陈述给定一个...
阅读 3 分钟
本文展示了如何利用Python和Numpy库以及Matplotlib来解决简单的拉普拉斯方程并绘制方程的解。我们还将看到,使用Python我们可以编写更少的代码并完成更多的工作。介绍 拉普拉斯方程是一个简单的二阶偏微分...
阅读9分钟
以下教程基于数据分析;我们将详细讨论方差分析(ANOVA),以及在Python编程语言中执行该过程。ANOVA通常用于心理学研究。在以下教程中,我们将理解如何……
阅读 13 分钟
在本节中,我们将讨论 Python 编程语言中的赋值运算符。在进入该主题之前,让我们简要介绍一下 Python 中的运算符。运算符是用于在操作数之间执行逻辑和数学运算的特殊符号……
阅读 6 分钟
任何人都可以通过玩翻转图块游戏来测试自己的记忆力。在此集合中,每个数字或图形都有成对的图块,这是一个偶数。我们必须翻转图块,以便在它们朝下时可以看到它们。一个人翻转...
阅读 12 分钟
有时 Web 应用程序需要使用 Python 语言在一个函数中显示两个值。这对于复杂功能、数学运算和数据库信息的显示是必要的。Python 提供了多种方法来返回两个值。使用对象 使用元组 使用列表 使用数据类 使用字典 使用对象 它...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India