什么是Python类的Getters / Setters方法?

Getter和Setter用于许多面向对象的编程语言中,以确保数据封装的原理。它们也称为mutator方法。数据封装被视为将数据与对这些数据进行操作的方法捆绑在一起。这些方法当然是用于获取数据的Getter和用于更改数据的设置器。根据该原理,将一个类的属性设为私有,以隐藏它们并保护它们免受其他代码的侵害。

不幸的是,人们普遍认为正确的Python类应该通过使用getter和setter封装私有属性。使用getter和setter并不容易且优雅。执行此操作的pythonic方法是使用properties或具有property的类。用于获取值的方法用“ @property”修饰。必须用作设置器的方法用“ @ x.setter”修饰。 

示例

使用getter和setter的示例如下

class P:
    def __init__(self,x):        
         self.__set_x(x)
    def __get_x(self):        
        return self.__x
    def __set_x(self, x):  
         if x < 0:            
           self.__x = 0  
        elif x > 1000:            
           self.__x = 1000        
        else:      
          self.__x = x
    x = property(__get_x, __set_x)