1

我正在使用 Python 的 anytree 包,我正在尝试遍历树:

from anytree import Node, RenderTree, AsciiStyle

f = Node("f")
b = Node("b", parent=f)
a = Node("a", parent=b)

print(RenderTree(f, style=AsciiStyle()).by_attr())


for node in LevelOrderIter(f):
    print node.name

但是,由于某种原因,我收到了错误消息NameError: name 'LevelOrderIter' is not defined

我已经安装了anytree(它可以创建节点等)并且根据语法我似乎是正确的:http: //anytree.readthedocs.io/en/latest/apidoc/anytree.iterators.html#anytree.iterators.LevelOrderIter

任何想法它不起作用?

完整错误:

f
+-- b
    +-- a
Traceback (most recent call last):
  File "aa.py", line 10, in <module>
    for node in LevelOrderIter(f):
NameError: name 'LevelOrderIter' is not defined
4

2 回答 2

2

如果您从库中调用函数,则可以将其称为提及库之类的anytree.LevelOrderIter()方法,也可以像这样直接导入它:

from anytree import LevelOrderIter
于 2017-06-16T14:42:12.510 回答
0

正确的示例如下所示(文档将在下一个版本中修复)

from anytree import Node, RenderTree, AsciiStyle, LevelOrderIter

f = Node("f")
b = Node("b", parent=f)
a = Node("a", parent=b)

print(RenderTree(f, style=AsciiStyle()).by_attr())


for node in LevelOrderIter(f):
    print node.name
于 2017-11-19T21:11:44.553 回答