Week 7
Iterator
例如遍历序列,for x in s
会创建 iterator,不妨记为 i = iter (s)
。不断取 x = next(i)
,x
会依次赋值,而 i
会向后移动。
到达结尾报错 StopIteration
。可以用 try
处理异常:
1 | try: |
即为 for
的等价实现
Generator
一类生成 iterator 的函数。
函数内部 yield
返回的值会依次被迭代。
generator 的运行是懒惰的,调用一次 next
会执行到下一次 yield
。故 generator 可以 yield
无穷次,生成不会停止的 iterator。
可用 yield for gen()
来 yield
generator gen()
的所有迭代值。
Week 8
面向对象。