尝试获取上一个节点时遇到错误(TypeError: 'node' object is not callable
)。我做错什么了?在
我的节点类:
class node(object):
def __init__(self):
self.node=[]
self.info = None
self.prev = None
self.depth=-1
self.step = []
def prev(self):
return self.prev
def add(self):
node1=node()
self.node.append(node1)
node1.prev=self
return node1
我的代码访问prev
(last_node
的深度值应该大约为5):
附加信息:
我正试着向后穿过那棵树,以便看到所走的路。step[]
值只获取几个整数。除了prev
(即,如果我取出部分来查找所采用的路径,则没有问题)。在
您已经在类中定义了一个名为
prev
的方法,但是在构造函数中,您将None
分配给self.prev
,然后在add
中,使用一个node
实例再次对其进行赋值。在因此,当您试图调用
rev.prev()
时,该方法已被重写,实际上您正试图调用一个node
对象,因此出现错误。在在Python中,通常(参见PEP-0008)在私有字段(客户端代码不应该使用的字段)前面加下划线,如下所示:
用小写来命名类也是有风险的,因为任何名为
node
的变量都会隐藏它并使其无法访问。Python中的约定是对类名使用Pascal大小写(以大写字母开头)(再次参见PEP-0008)。在相关问题 更多 >
编程相关推荐