関連する複数の属性を持つクラスがあります。次に例を示します。
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
。
最初に空のオブジェクトを作成し、それに 1 つの属性を割り当てたい場合は、他の属性を自動的に更新する必要があります。
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]