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


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

访问器方法

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

在Python中,访问器方法使用@property装饰器定义。调用访问器方法时,它会返回对象的私有成员变量值。

示例

在下面的示例中,我们将定义一个名为Person的类,其中包含一个私有变量_name。然后,我们创建一个name访问器方法,该方法返回_name变量的值,它是Person类的私有成员变量。我们可以通过创建一个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

修改器方法

修改器方法用于修改对象的私有数据。修改器方法也称为setter方法,因为它们用于设置/修改对象私有变量的值。修改器方法声明为私有方法,修改对象变量的私有值。

在Python中,修改器方法使用@.setter装饰器定义,该装饰器指定特定方法的行为类似于setter方法。调用修改器方法时,它会设置对象私有变量的值。

示例

在下面的示例中,我们定义一个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

结论

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

更新于:2023年4月13日

4K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告