内部含有_next_和_iter_方法的就是迭代器。对象
能够被for循环的都是可迭代的,只有是可迭代对象,才能用for循环。内存
可迭代的内部都有_iter_方法——可迭代协议。it
只要是迭代器,必定可迭代。for循环
若A是可迭代的,则A._iter_()方法就能够得带一个迭代器。容器
迭代器中的_next_()方法能够一个一个的获取值。循环
有人会问为何有迭代器,还要用for循环呢?其实for循环使用的就是迭代器。迭代器
(1)从容器中一个一个的取值,能够把全部的值都取到。方法
(2)节省内存空间。next
迭代器并不会在内存中占用一大块内存,而是随着循环,每次生成一个,而后每次next给我一个。协议