day4_迭代器

概念:
迭代的概念:重复+上一次迭代的结果为下一次迭代的初始值
重复的过程称为迭代,每次重复即一次迭代,
并且每次迭代的结果是下一次迭代的初始值


可迭代对象:只有__iter__方法,执行该方法得到的迭代器对象

迭代协议:
对象有__next__
对象有__iter__,对于迭代器对象来说,执行__iter__方法,得到的结果仍然是它本身

##############可以作为for 循环的被循环体 都是可迭代对象;
li=[1,2,3,4,5]
a=li.__iter__()    -->生成迭代器
print (a.__next__())
print (a.__next__())
print (a.__next__())
print (a.__next__())

上面和
for i in li:
print (i)
是一样的,只不过 for 循环 捕捉了 报错,然后停掉了

迭代器的优点和缺点
优点:
1.提供了一种不依赖下标的迭代方式
2.就跌迭代器本身来说,更节省内存

缺点:
1. 无法获取迭代器对象的长度
2. 不如序列类型取值灵活,是一次性的,只能往后取值,不能往前退