Python--day13--迭代器2
1,什么是迭代器?
一个列表执行了__iter__()之后的返回值就是一个迭代器

2,迭代器可迭代的秘密:

迭代器秘密的三个方法__setstate__,__next__,__length_hint__:(列表[]是没有这三个方法的,只有列表的迭代器[].__iter__()才有这三个方法)

迭代器的.__next__()方法的使用:

可迭代的和迭代器的概念
1,Iterable 可迭代的 --> __iter__ 只要含有__iter__方法的都是可迭代
2,[].__iter__() 迭代器 --> _next_ 通过next就可以从迭代器中一个一个的取值
可迭代协议和迭代器协议:
1,只要含有__iter__方法的都是可迭代的 ---- 可迭代协议
2,迭代器协议 ---- 内部同时含有__next__和__iter__方法的就是迭代器

判断是否是可迭代的和是否是迭代器的函数方法:isinstance([],Iterator))

for循环一个可迭代的数据类型和for循环这个数据类型的迭代器的结果是一样的:也就是比如说for循环一个列表l和循环列表的迭代器l.__iter__()是一样的:

迭代器的好处:
1,从容器类型一个一个的取值,会八所有的值都取到。
2,节省内存空间
#迭代器并不会在内存中占用一大块内存
#而是随着循环 每次生成一个
#每次next每次给我一个
截图:

浙公网安备 33010602011771号