迭代器 调用了 __iter__方法 变成了可迭代对象 可迭代对象也会有__next__方法 取出下一个 直到无法取出
l = [1,2,3,4]
x_r = x.__iter__()
l_r.__next__()
1
for循环的本质 循环所有对象 都是迭代器协议
l = [1,2,3,4,5]
l_r = l.__iter__()
while True:
try:
print(l_r.__next__())
except Exception:
break
1
2
3
4
5
生成器
使用yield 关键字
def yie():
while True:
yield 2
yi = yie()
print(yi.__next__())
print(yi.__next__())
print(yi.__next__())
2
2
2