时间:2021-07-01 10:21:17 帮助过:39人阅读
# -*- 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迭代模式实例详解的详细内容,更多请关注Gxl网其它相关文章!