Python 中的 Getter 和 Setter17 Mar 2025 | 5 分钟阅读 Python 中的 Getters 和 Setters 与其他 **OOPs** 语言有所不同。Getter 和 Setter 的主要用途是确保面向对象程序中的数据封装。与许多其他面向对象语言不同,Python 中的私有变量不是隐藏字段。一些 **OOPs** 语言使用 getter 和 setter 方法来实现 **数据封装**。我们希望将一个对象类的属性隐藏起来,不让其他类随意修改数据。 在 OOPs 语言 中,Getter 和 Setter 用于检索和更新数据。Getter 检索对象当前的属性值,而 Setter 更改对象属性的值。在本文中,我们将通过示例讨论 Python 中的 Getter 和 Setter。 Python 中的 Getter 是什么?Getter 是在面向对象编程 (OOPS) 中用于访问类私有属性的方法。Python 中的 setattr() 函数对应于 Python 中的 getattr() 函数。它会修改对象属性的值。 Python 中的 Setter 是什么?Setter 是用于设置属性值的方法。在面向对象编程中,它对于设置类中私有属性的值非常有用。 通常,Getter 和 Setter 主要用于确保 OOPS 中的数据封装。 使用普通函数实现 Getter 和 Setter 功能如果我们指定普通的 get() 和 set() 方法来实现 Getter 和 Setter 功能,则不会有特殊的实现。 示例让我们举例说明如何使用普通函数来实现 Getter 和 Setter 功能。 输出: 执行上述代码后,我们将得到如下输出 输出是 19 19 说明: 为了实现这种功能,上述代码中的 get age() 和 set age() 函数像标准函数一样运行,不会影响 Getter 和 Setter。Python 有一个特殊的函数 property()。 使用 property() 函数实现 Getter 和 Setter 功能在 Python 中,property() 是一个内置函数,用于创建和返回一个 property 对象。property 对象有三个方法:getter()、setter() 和 delete()。在 Python 中,property() 函数接受四个参数:property(fget, fset, fdel, doc)。fget 函数用于检索属性值。fset 函数用于设置属性值。fdel 函数用于删除属性值。doc 用于为属性提供文档字符串。 示例让我们举例说明如何使用 property() 函数来实现 Getter 和 Setter 功能。 输出: 执行上述代码后,我们将得到如下输出 输出是 setter method getter method 18 说明 在上面的程序中,只有一个打印语句。输出包含三行,因为调用了 setter 方法 set age(),并且调用了 getter 方法 get age()。因此,age 是一个 property 对象,有助于保护私有变量的访问。 使用 @property 装饰器实现 Getter 和 Setter 功能我们在上一种方法中使用了 property() 函数来实现 Getter 和 Setter 功能。但是,正如本文前面提到的,Getter 和 Setter 也用于验证属性值的获取和设置。另一种强制执行 property 函数的方法是使用装饰器。@property 是 Python 的一个内置装饰器。任何装饰器的主要目标是修改类方法或属性,以便类用户不必更改他们的代码。 示例让我们举例说明如何使用 @property 装饰器来实现 Getter 和 Setter 功能。 输出: 执行上述代码后,我们将得到如下输出 输出是 setter method called getter method called 25 说明 前面的代码演示了如何使用 @property 装饰器 来构建 Pythonic 的 Getter 和 Setter。上面的例子作为验证代码,如果我们尝试使用小于 20 的值来初始化 age,将引发 ValueError。 使属性私有化现在,我们将看到如何使方法私有化,以便外部调用函数无法操作其中的变量。它们只能由类中定义的函数来操作。它们通过在前面加上两个下划线来私有化。 示例让我们举例说明如何在程序中使属性私有化。 输出: 执行上述代码后,我们将得到如下输出 49 从私有方法读取值要从私有方法读取值,我们必须使用 getter 方法。不使用 getter 方法,我们就无法使用 property 方法来访问私有属性值。让我们举例说明这种方法。 示例输出: 执行上述代码后,我们将得到如下输出 输出是 27 2020 示例 让我们再举一个例子来创建一个带有属性的类。从中我们可以创建几个对象。 这些对象上没有设置 (Emp) 属性。我们可以直接设置它,但这并不是一个好方法。我们而是创建了两个方法:getEmp() 和 setEmp()。 输出: 执行上述代码后,我们将得到如下输出 输出是 Designer Developer 下一个主题Python 枚举类 |
? 二进制是基数 2 数字系统,这意味着它只使用两个数字 - 0 和 1。另一方面,十进制是基数 10 数字系统,这意味着它使用十个数字 - 0 到 9。要在 Python 中将二进制数转换为十进制,我们...
阅读 3 分钟
调频 (FM) 是一种调制技术,用于通过改变载波信号的频率来传输信息。在 FM 中,载波信号的频率由信息信号(通常是音频信号)调制。这会创建一个频率与...
14 分钟阅读
在之前的教程中,我们讨论了可以使用 Python 编程语言的不同包和模块对 PDF 文件执行的各种操作。我们学习了可用于操作 PDF 文件的不同 Python 库的工作原理。此外,我们...
阅读 8 分钟
在本教程中,我们将学习 Python 中用于命令行的目录树生成器工具。Python 开发人员应该具备使用命令行界面 (CLI) 创建用户友好应用程序的技能。这项技能有助于创建自动化和加速的工具...
14 分钟阅读
?本教程解释了什么是 GUI 以及如何使用 Python 构建 GUI 应用程序。它还展示了如何使用 wxPython 创建 GUI。GUI 应用程序是计算机程序或硬件的图形用户界面。你...
阅读 16 分钟
在本教程中,我们将学习如何在 Python 中实现接口。通常,接口不是 Python 的一部分,但我们可以使用 ABC 模块实现它。我们将了解接口如何工作以及 Python 接口创建的注意事项。接口起着至关重要的作用...
7 分钟阅读
在本教程中,我们将学习如何使用 Python 读取 HTML 表。我们知道,每天都会产生大量数据,我们需要提取相关信息。互联网是获取相关数据以满足我们需求的绝佳来源,并且...
5 分钟阅读
在本教程中,我们将讨论 Python 中的名称修饰过程以及如何使用不同的方法在 Python 中使用名称修饰过程。名称修饰一个过程,其中任何带有单个尾部下划线和两个前导下划线的给定标识符都会被文本替换...
5 分钟阅读
在接下来的教程中,我们将借助示例来理解 Python 编程语言中的 reprlib 模块。让我们开始吧。理解 Python 中的 reprlib 模块 Python reprlib 模块提供了一种方法,用于生成限制了结果大小的对象表示...
阅读 3 分钟
在本教程中,我们将学习如何使用 Python 读取和写入文件中的列表。众所周知,Python 使用列表来存储各种类型的数据,并且它是可变的。为了持久地存储数据,我们......
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India