我正在用 python 编写一个学习程序,但我没有得到我期望的行为。我正在尝试使用名为 node 的类创建一个非常基本的树。请不要因为我的树设计蹩脚而惩罚我,我只是想学习这门语言。
无论如何,我期待输出如下:
LEVEL1 0
LEVEL1 1
但是,我得到
LEVEL1 0
LEVEL1 1
LEVEL1 0 ... LEVEL2 0
在我做的那一行,leaves[0].addLeaf
我真的以为我会调用其中一个子叶的方法,但似乎我是从 TOP 叶调用的。请帮我理解。
不要被名字所欺骗traversePrint
。什么都没有被遍历,反正还没有:(
#!/usr/bin/python
class node:
"""Something that can act like like leaves of a tree"""
leaves = []
def __init__(self, data=""):
self.data = data
def addLeaf(self, newNode="new"):
self.leaves.append(node(newNode))
def printLeafs(self):
for leaf in self.leaves:
print leaf.data
def getLeafs(self):
return self.leaves
def traversePrint(self):
for leaf in self.leaves:
print leaf.data
#for leaf in self.leaves:
# leaf.traversePrint()
top = node("TOP")
top.addLeaf("LEVEL1 0")
top.addLeaf("LEVEL1 1")
leaves = top.getLeafs()
leaves[0].addLeaf("LEVEL1 0 ... LEVEL2 0")
top.traversePrint()