迭代器模式
意义:
提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
适用性:
- 访问一个聚合对象的内容而无需暴露它的内部表示。
- 支持对聚合对象的多种遍历。
- 为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。
举例:
def FibonacciSequence(n):
x = 0
y = 1
i = 1
while True:
yield y
if i == n:
break
x, y = y, x+y
i += 1
if __name__ == '__main__':
test = FibonacciSequence(7)
next(test) #激活
next(test)
next(test)
next(test)
next(test)
next(test)
next(test)
next(test)
输出结果:
1
1
2
3
5
8
13