# -*- coding: utf-8 -*- """ created on thu mar 29 11:43:05 2018 @author: mz """ class iterator(object): def next(self): pass def hasnext(self): pass def first(self): pass def forward(self): pass class cocreteiterator(iterator): def __init__(self, aggregate): self._aggregate = aggregate def next(self): return self._aggregate.next() def hasnext(self): return self._aggregate.hasnext() def first(self): return self._aggregate.first() def forward(self): return self._aggregate.forward() class aggregate(object): def createiterator(self): pass def next(self): pass def hasnext(self): pass def first(self): pass def attach(self, obj): pass def forward(self): pass class concreteaggregate(object): def __init__(self): self._lst = [] self._index = 0 def createiterator(self): return cocreteiterator(self) def next(self): return self._lst[self._index] def hasnext(self): return self._index < len(self._lst) def first(self): self._index = 0 return self._lst[0] def attach(self, obj): self._lst.append(obj) def forward(self): self._index += 1 if "__main__" == __name__: aggregate = concreteaggregate() aggregate.attach(1) aggregate.attach("2") aggregate.attach("a") aggregate.attach("b") aggregate.attach("c") aggregate.attach("45") it = aggregate.createiterator() while it.hasnext(): print(it.next()) it.forward()
运行结果:
1 2 a b c 45
以上就是python迭代模式实例详解的详细内容。
