我试图用Python实现一个简单的链表,并尝试使用我在其中学到的所有Python概念。我被困在为类实现生成器。在
代码:def __iter__(self):
return self
def next(self):
tempNode = self.head
while tempNode:
yield tempNode.data
tempNode = tempNode.nextNode
else:
raise StopIteration
用法:
^{pr2}$
输出:generator object next at 0x7ff885b63960
generator object next at 0x7ff885b63960
它既不打印节点的数据值,也不保持方法的当前状态[从返回的地址可以明显看出]。在
我在哪里犯错误?提前谢谢。在
编辑
我修改了代码:def next(self):
tempNode = self.head
while tempNode:
tempNode2 = tempNode
tempNode = tempNode.nextNode
return tempNode2.data
else:
raise StopIteration
现在,打印节点值,但如前所述,状态不被保留,并且每次都打印第一个节点的值。在