pythonb-tree:每个节点都从根挂起

pythonb-tree:每个节点都从根挂起,python,b-tree,Python,B Tree,好的,基本上我想做的是实现一个非常基本和简单的B-树,但是我发现自己有一个问题:根节点作为子节点保存树中的每个节点。我已经尽可能地简化了,下面是我面临的问题的一个例子: >>> class Btree(): subs = [] value = 0 >>> a=Btree() >>> b=Btree() >>> c=Btree() >>> a.value=1 >>

好的,基本上我想做的是实现一个非常基本和简单的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
类Btree(): subs=[] 值=0 >>>a=Btree() >>>b=Btree() >>>c=Btree() >>>a.值=1 >>>b.subs.append(a) >>>b.数值=2 >>>c.subs.append(b) >>>c.值=3 >>>c >>>c.价值 3. >>>len(c.subs) 2. >>>c.潜艇 [, ] >>>c.subs[1]。值 2. >>>c.subs[0]。值 1.
有人能告诉我发生了什么吗?

您需要使用
\uuu init\uu()方法来生成实例属性。现在的做法是声明类的所有实例共享的类属性。尝试这样做:

class BTree:
    def __init__(self):
        self.subs = []
        self.value = 0

是的,成功了。我想我应该更彻底地阅读python文档。谢谢你,我欠你一个棒棒糖!