这是我的代码(非常简单)
class Node:
def __init__(self, data, next):
self.data = data
self.next = next
def __str__(self):
node = self
if node.next:
node = node.next
return node.__str__()
return str(self.data)
现在,当我创建两个节点时,就像这样:
a = Node(1,1)
b = Node(2,a)
print(b)
它返回
1
我的问题是,当我打印(b)时,不应该打印
2
1
?因为首先,它将检查node.next是否存在(在这种情况下,它确实存在.node.next是a)。然后它会做
node = node.next
return node.__str__() # a.__str__() which is equal to 1
return str(self.data) # this correctly returns 2
它怎么回来
2
1
并仅返回
1
代替?
答案 0 :(得分:3)
您的代码不会连接值。它似乎只是递归到它结束,然后返回(仅)这个值。甲...
return node.__str__() + str(self.data)
......可能更符合您的想法。