Skip to main content
 首页 » 编程设计

python之Python 中成员变量的 Getter 和 Setter

2025年05月04日13jackei

我知道Python不推荐给类成员变量写getter和setter。我仍然需要这样做,因为我有一个复杂的对象,它内部包含很多深度对象。我需要在容器对象中公开一个属性/函数,它将获取和/或设置内部对象的成员。我如何在 Python 中执行此操作?

def responseoperationcode(self,operationcode=None): 
    if operationcode: 
        self.innerobject.operationcode=operationcode 
    else: 
        return self.innerobject.operationcode 

上面给定的函数可以充当 getter 和 setter,但使用它的语法会令人困惑。我的要求是用户应该在不使用括号的情况下获取它的值,并设置他应该传递参数的值。像这样

objectname.responseoperationcode ##this should return the value 

和

objectname.responseoperationcode("SUCCESS")##this should set the value 

请提出建议。

请您参考如下方法:

Python 支持 properties .您可以将代码更改为:

@property 
def responseoperationcode(self): 
    return self.innerobject.operationcode 
 
@responseoperationcode.setter     
def responseoperationcode(self, value):     
    self.innerobject.operationcode = value 

现在你可以像字段一样使用responseoperationcode函数,例如:

objectname.responseoperationcode # this returns the value 
objectname.responseoperationcode = "SUCCESS" # this sets the value