Not able to write a iterator for a Linked List created in python
本问题已经有最佳答案,请猛点这里访问。
试图创建一个python单链接列表,但我无法创建迭代器。这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class LinkedList: def __init__(self): self._head=self self._tail=self self._size=0 def __iter__(self): print 'Calling Iterator ' _ListIterator(self._head) class ListObj: def __init__(self,value): self._data=value self._pointingTo=None class _ListIterator: def __init__(self,listHead): LIST=None self._curNode=listHead print dir(self._curNode) def __next__(self): if self._curNode._pointingTo is None: raise StopIteration else: item=self._curNode._data self._curNode=self._curNode._pointingTo return item |
此迭代器失败,将错误作为
1 | TypeError: __iter__ returned non-iterator of type 'NoneType' |
1 | _ListIterator(self._head) |
你把这个忘了。