for x in iter(int, 1): pass
- 二参数
iter
=零参数可调用+哨兵值 int()
总是回来0
因此,
iter(int,1)是一个无限的迭代器。显然,此特定主题有很多变体(尤其是一旦您添加
lambda到组合中)。特别注意的一个变体是
iter(f,object()),因为使用新创建的对象作为哨兵值几乎可以保证无限迭代器,而与用作第一个参数的可调用对象无关。

for x in iter(int, 1): pass
iter=零参数可调用+哨兵值
int()总是回来
0
因此,
iter(int,1)是一个无限的迭代器。显然,此特定主题有很多变体(尤其是一旦您添加
lambda到组合中)。特别注意的一个变体是
iter(f,object()),因为使用新创建的对象作为哨兵值几乎可以保证无限迭代器,而与用作第一个参数的可调用对象无关。