- 内容:提供一个方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示
实现方法:iter、next ```python class LinkList: “””链表 头结点保存链表的长度””” class Node:
def __init__(self, item=None):self.item = itemself.next = None
class LinkListIterator:
def __init__(self, node):self.node = nodedef __next__(self):if self.node:cur_node = self.nodeself.node = cur_node.nextreturn cur_node.itemelse:raise StopIterationdef __iter__(self):return self
def init(self, iterable=None):
self.head = LinkList.Node(0)self.tail = self.headself.extend(iterable)
def append(self, obj):
s = LinkList.Node(obj)self.tail.next = sself.tail = s
def extend(self, iterable):
for obj in iterable:self.append(obj)self.head.item += len(iterable)
def iter(self):
return self.LinkListIterator(self.head.next)
def len(self):
return self.head.item
def str(self):
return "<<" + ", ".join(map(str,self)) + ">>"
li = [i for i in range(100)] lk = LinkList(li)
print(lk) ```
