是否有一种更 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
