Skip to main content
 首页 » 编程设计

Python 类 : linked attributes

2025年05月04日15mfrbuaa

是否有一种更 pythonic 的“链接”属性的方法,这样当类中的一个属性发生变化时,另一个可以根据我定义的某种关系自动更改?

目前,我正在做类似的事情:

class myClass(object): 
    def __init__(self): 
        self.x = 1 
        self.y = 2 * self.x 
        pass 
    def set_x(self, x): 
        self.x = x 
        self.y = 2 * self.x 
        return 
A = myClass() 
print A.x #prints 1 
print A.y #prints 2 
A.set_x(5) 
print A.x #prints 5 
print A.y #automatically changes to 10 

请您参考如下方法:

您可以使用属性:

class myClass(object): 
    def __init__(self): 
        self.x = 1 
 
    @property 
    def x(self): 
        return self._x 
 
    @x.setter 
    def x(self, x): 
        self._x = x 
        self.y = 2 * self._x 

还有一个测试:

>>> c= myClass() 
>>> c.x = 10 
>>> c.x 
10 
>>> c.y 
20