迭代器模式
意图:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示
适用性:
访问一个聚合对象的内容而无需暴露它的内部表示。
支持对聚合对象的多种遍历。
为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。
实现方法:__iter__、__next__
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 class Range: 2 3 def __init__(self,start,end): 4 self.start = start 5 self.end = end 6 7 def __iter__(self): #将对象转变成迭代器 8 return self 9 10 def __next__(self): #自取值 11 if self.start == self.end: 12 raise StopIteration 13 14 n = self.start 15 self.start+=1 16 return n 17 18 for i in Range(1,10): 19 print(i)