Странное поведение с простой реализацией дерева в python - PullRequest
0 голосов
/ 21 июля 2011
class Node:
    children = {}

sequence = [1,2,3,4,5]

tree = Node()
node = tree
for item in sequence:
    if item not in node.children:
        node.children[item] = Node()
    node = node.children[item]

print tree.children.keys()

Я хочу, чтобы приведенный выше код выводил [1], однако он выводит [1, 2, 3, 4, 5].Почему это так, и как мне исправить это?

1 Ответ

7 голосов
/ 21 июля 2011

Node.children является атрибутом класса. Вместо этого сделайте его атрибутом экземпляра.

class Node:
  def __init__(self):
    self.children = {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...