【发布时间】:2021-04-03 19:24:50
【问题描述】:
考虑以下最小工作示例:
import itertools
for i in iter(itertools.count, 10):
print(i)
我预计输出计数为 10。但是,输出一次又一次是 count(0)。打印类型会给出<class 'itertools.count'>。
iter(object, sentinel) 的文档说明如下:
在这种情况下创建的迭代器将调用 object,每次调用其
__next__()方法时不带任何参数;如果返回的值等于sentinel,StopIteration将被提升,否则该值将被返回。
这对我来说就像我所期望的行为。我忽略了什么?可选的额外问题:iter 如何使 object 成为生成器并获得预期的行为?
【问题讨论】:
标签: python python-3.x iterator