解决:问题似乎只发生在Python身上。我在IDLE的pythonshell中运行了所有的东西,它运行得很好。一定是PythonWin的bug,而不是代码本身。在
我似乎不明白为什么下面的代码给我一个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
添加子节点的代码(工作正常)
^{pr2}$任何帮助都将不胜感激。在
全口译员会话:
&>&bteno导入
&>>>节点1=二进制代码(5)
&>>>节点2=二进制代码(2)
&>>>节点3=二进制代码(12)
&>>>节点3=二进制代码(16)
&>节点4=二进制代码(4)
&>>>节点5=二进制代码(13)
>;>>node1.addChild(node2)
>;>>node1.addChild(node3)
>;>>node1.addChild(node4)
>;>>node1.addChild(node5)
>;>>节点4.genList()
<;类“列表”>;
>;>>node1.genList()
回溯(最近一次呼叫):
文件“<;interactive input>;”,第1行,在<;module>;
文件“C:…\python\二进制代码.py“,第47行,在genList中
数字列表扩展(self.leftChild.genList())错误
文件“C:…\python\二进制代码.py“,第52行,genList中
TypeError:“type”对象不可编辑
在您的示例中没有任何内容可以说明问题的来源,但它的意思是您返回的是一个对象类型,而不是一个对象实例。在这一点上,我所能提供的就是建议另一种方法来重写
genList()
方法,看看它是否神奇地解决了您的问题。在您可以尝试通过递归传递相同的结果列表,而不是返回大量临时结果:
另外,使用
'none'
而不是None
有什么原因吗?我只使用None
而不是字符串。在我建议对您的版本进行编辑:http://pastebin.com/FGf8Lcdu
下面是python3.3下相同解释器代码的输出:
^{pr2}$我会加上几张照片,看看它给出错误时的实际类型,比如:
一个不那么疯狂的猜测。。。 尝试而不是列表((自我价值观,))使用[自我价值观]. 我有一种感觉它会起作用的。。。:-)
相关问题 更多 >
编程相关推荐