好吧,基本上我要做的是实现一个非常基本和简单的B树,但我发现自己有一个问题:根节点将树中的每个节点作为子节点。我尽可能地简化了,这是我面临的问题的一个例子:
>>> class Btree():
subs = []
value = 0
>>> a=Btree()
>>> b=Btree()
>>> c=Btree()
>>> a.value=1
>>> b.subs.append(a)
>>> b.value=2
>>> c.subs.append(b)
>>> c.value = 3
>>> c
<__main__.variable object at 0x103d916a0>
>>> c.value
3
>>> len(c.subs)
2
>>> c.subs
[<__main__.variable object at 0x103d91780>, <__main__.variable object at 0x103d917f0>]
>>> c.subs[1].value
2
>>> c.subs[0].value
1
有人可以告诉我发生了什么事吗?
答案 0 :(得分:1)
您需要使用__init__()
方法来创建实例属性。现在,您正在声明由类的所有实例共享的类属性。试着这样做:
class BTree:
def __init__(self):
self.subs = []
self.value = 0