Найти - Пользователи
Полная версия: Автоматическое изменение атрибута при изменении другого атрибута
Начало » Python для новичков » Автоматическое изменение атрибута при изменении другого атрибута
1
garza
class polynom:
coeff = []
length = len(coeff)


p1 = polynom
p1.coeff = [1, 2, 3]
print p1.length
тут получается length = 0. А нужно так чтобы при каждом измении coeff в length автоматически записывалось пересчитанное значение. как сделать?
bw
class Polynom(object):
length = property(lambda self: len(self.coeff))

def __init__(self):
self.coeff = []
>>> polynom = Polynom()
>>> polynom.length
0
>>> polynom.coeff = [1, 2, 3]
>>> polynom.length
3
..bw
Ed
Я бы сделал coeff проперти и в ее сеттере устанавливал бы self.length. Так не нужно будет при каждом обращении к length ее считать.
o7412369815963
Ed
Я бы сделал coeff проперти и в ее сеттере устанавливал бы self.length. Так не нужно будет при каждом обращении к length ее считать.
а оно не считается, длинна хранится в переменной внутри листа.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB