內部含有_next_和_iter_方法的就是迭代器。對象
能夠被for循環的都是可迭代的,只有是可迭代對象,才能用for循環。內存
可迭代的內部都有_iter_方法——可迭代協議。it
只要是迭代器,必定可迭代。for循環
若A是可迭代的,則A._iter_()方法就能夠得帶一個迭代器。容器
迭代器中的_next_()方法能夠一個一個的獲取值。循環
有人會問爲何有迭代器,還要用for循環呢?其實for循環使用的就是迭代器。迭代器
(1)從容器中一個一個的取值,能夠把全部的值都取到。方法
(2)節省內存空間。next
迭代器並不會在內存中佔用一大塊內存,而是隨着循環,每次生成一個,而後每次next給我一個。協議