在Python中的访问器和修改器方法

WBOY
发布: 2023-08-20 17:33:28
转载
1029 人浏览过

在Python中的访问器和修改器方法

在Python中,访问器和修改器方法用于访问类的私有数据,这些数据无法从类外部访问。在面向对象编程中,类对象的数据被封装,即对象数据被保持为私有数据,无法从对象外部访问。使用Python中的访问器和修改器方法提供对这些私有数据的访问。这些方法在Python中也被称为getter和setter方法。在本文中,我们将通过示例来理解访问器和修改器方法。

访问器方法

访问器方法用于访问对象数据。可以使用访问器方法访问对象的私有变量。访问器方法被声明为公共方法,用于返回对象的私有成员数据。访问器方法也被称为getter方法,因为它们用于获取对象数据。

In Python the accessor method is defined using @property decorator. When the accessor method is called it returns the private member variable value of the object.

Example

的中文翻译为:

示例

在下面的示例中,我们将定义一个名为Person的类,其中包含一个私有变量_name。然后,我们创建一个名为name的访问器方法,该方法返回Person类的私有成员变量_name的值。我们可以通过创建一个person对象并使用name访问器方法来访问_name属性的值。

class Person:
   def __init__(self, name):
      self.__name = name

   @property
   def name(self):
      return self.__name

person = Person("John")
print(person.name)  
登录后复制

输出

John
登录后复制

Mutator Method

Mutator methods are used to modify an object's private data. Mutator methods are also called setter methods as they are used to set/modify the value of an object private variable. Mutator methods are declared private which modifies the private value of the object variables.

In python mutator methods are defined using the @.setter decorator which specifies that the particular method behaves like a setter method. When the mutator method is called it sets the value of the object private variable.

Example

的中文翻译为:

示例

在下面的示例中,我们定义了一个Person类,该类具有一个私有的_name变量。我们还使用@property和@name.setter装饰器分别定义了一个名为name的访问器方法和一个名为name的修改器方法。当调用该函数并传递一个值参数时,name修改器方法会修改_name变量的值。

class Person:
   def __init__(self, name):
      self.__name = name

   @property
   def name(self):
      return self.__name

   @name.setter
   def name(self, value):
      self.__name = value

person = Person("John")
person.name = "Jane"
print(person.name)  
登录后复制

输出

Jane
登录后复制

Conclusion

访问器和修改器方法在面向对象编程中用于提供对对象的私有变量的访问。这些方法也被称为getter和setter方法,因为它们分别用于获取和设置/修改对象的私有变量。在Python中,访问器和修改器方法分别使用@property和@.setter装饰器来定义。

以上是在Python中的访问器和修改器方法的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板