У меня есть класс, который имеет несколько атрибутов, которые связаны, например:
class SomeClass:
def __init__(self, n=0):
self.list = range(n)
self.listsquare = [ x**2 for x in self.list ]
Если я делаю объект нормально, что бы не проблема,
a = SomeClass(10)
Я получу 2 списка, a.list
и a.listsquare
.
Теперь, если я хочу сначала создать пустой объект и присвоить ему один атрибут, я хочу, чтобы другие атрибуты были автоматически обновлены, например, если я делаю
b = SomeClass()
b.list = range(5,10)
Я хочу, чтобы b.listsquare
автоматически обновлялся, а также наоборот (назначить b.listsquare
и автоматическое обновление b.list
). Это возможно? Является ли класс правильным выбором для этого?
Спасибо вам всем, но я полностью перегружен всеми разными ответами. Может ли кто-нибудь дать полное решение, чтобы я мог научиться писать свои собственные?
Я хотел бы получить класс Foo
с 3 атрибутами length
, list
и listsquare
такими, что:
- Если я делаю
a = Foo(3)
, я получаюa.length = 3
,a.list = [0, 1, 2]
,a.listsquare = [0, 1, 4]
. - Если я делаю
b = Foo().list = [5, 6]
, я получаюb.length = 2
,b.listsquare = [25, 36]
. - Если я делаю
c = Foo().listsquare = [4, 9]
, я получаюc.length = 2
,c.list = [2, 3]
.