我有一个具有多个相关属性的类,例如:
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
)。这可能吗?Class是正确的选择吗?
谢谢大家,但我完全被所有不同的答案所淹没。任何人都可以提供完整的解决方案,以便我可以自己学习编写吗?
我想实现一个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]
。