python迭代器问题

from collections import Iterator
from collections import Iterable
g = (x * x for x in range(10))
t = isinstance(g, Iterator)
print(t)#这一行的显示结果为true
print(next(t))#为什么这样子输出会显示错误???????????t不是迭代器吗???????
阅读 3.2k
3 个回答

你是不是写错了?
把next(t)改成next(g)也可以啊。
但是要全部遍历要放进循环里,
如果一直用next手动遍历最后一次会报错。

isinstance是一个判断变量类型的方法,类似type(),返回的是bool值,你从函数名字就可以猜出来了?

这个例子中g已经是迭代器了

所以你要print(next(g)),多次执行就循环打印迭代器中的值

这里的迭代器是g,t是isinstance函数返回值,你都打印出来是true了,怎么可能是迭代器

推荐问题