是否有一种更 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
关于Python 类 : linked attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944436/