Возьмите этот простой пример класса:Почему список элементов, обернутый атрибутом, отображает неожиданные значения?
class vec:
def __init__(self,v=(0,0,0,0)):
self.v = list(v)
@property
def x(self):
return self.v[0]
@x.setter
def set_x(self, val):
self.v[0] = val
... и это использование:
>> a = vec([1,2,3,4])
>> a.v
[1,2,3,4]
>> a.x
1
>> a.x = 55
>> a.x
55
>> a.v
[1,2,3,4]
Почему массив членов (в частности, self.v[0]
) и сообщенное значение свойства не согласны? Если это не в self.v
, то откуда взялось значение измененного свойства?