已解决:似乎该问题仅出现在 PythonWin 中。我通过 IDLE 的 python shell 运行了所有东西,它工作得很好。必须是 PythonWin 的错误,而不是代码本身。
我似乎无法弄清楚为什么下面的代码给了我一个TypeError: 'type' object is not iterable
粘贴箱:http : //pastebin.com/VFZYY4v0
def genList(self):
#recursively generates a sorted list of child node values
numList = []
if self.leftChild != 'none':
numList.extend(self.leftChild.genList()) #error
numList.extend(list((self.Value,)))
if self.rightChild != 'none':
numList.extend(self.rightChild.genList()) #error
return numList
添加子节点的代码(正常工作)
def addChild(self, child):
#add a child node. working
if child.Value < self.Value:
if self.leftChild == 'none':
self.leftChild = child
child.parent = self
else:
self.leftChild.addChild(child)
elif child.Value > self.Value:
if self.rightChild == 'none':
self.rightChild = child
child.parent = self
else:
self.rightChild.addChild(child)
任何帮助,将不胜感激。
完整的解释器会话: >>> import BinTreeNode as BTN
>>> node1 = BTN.BinaryTreeNode(5)
>>> node2 = BTN.BinaryTreeNode(2)
>>> node3 = BTN.BinaryTreeNode(12)
>>> node3 = BTN .BinaryTreeNode(16)
>>> node4 = BTN.BinaryTreeNode(4)
>>> node5 = BTN.BinaryTreeNode(13)
>>> node1.addChild(node2)
>>> node1.addChild(node3)
>>> node1. addChild(node4)
>>> node1.addChild(node5)
>>> node4.genList()
<class 'list'>
>>> node1.genList()
Traceback(最近一次调用最后):
文件“<交互式输入>” ,第 1 行,在 <模块>
文件“C:...\python\BinTreeNode.py”,第 47 行,在 genList
numList.extend(self.leftChild.genList()) #error
文件“C:...\python\BinTreeNode.py”,第 52 行,在 genList
TypeError: 'type' object is not iterable