迷茫2017-04-18 09:41:16
手机码字。
这段代码巧妙利用了 iter 的另一种形式:
如果传给 iter 的是两个参数: callable 和 sentinel,则返回的生成器会反复调用 callable 并 yield 其返回值,直到返回值和 sentinel 相等时停止。
等价代码:
def iter(callable, sentinel):
while True:
val = callable()
if val == sentinel: break
yield val