# 迭代器:
# 雙下方法 : 不多直接調用的方法。通常狀況下,是經過其餘語法觸發的
# 可迭代的 —— 可迭代協議 含有__iter__的方法都是可迭代的('__iter__' in dir(數據))
# 可迭代的必定能夠被for循環
# 迭代器協議: 含有__iter__和__next__方法
# 迭代器必定可迭代,可迭代的經過調用iter()方法就能獲得一個迭代器
# 迭代器的特色:
# 很方便使用,且只能取全部的數據取一次
# 節省內存空間
# Iterable 可迭代的 -- > __iter__ #只要含有__iter__方法的都是可迭代的
# [].__iter__() 迭代器 -- > __next__ #經過next就能夠從迭代器中一個一個的取值
# l = [1,2,3] # iterator = l.__iter__() # print(iterator.__next__()) # print(iterator.__next__()) # print(iterator.__next__()) # print(iterator.__next__())
# 迭代器協議和可迭代協議# 能夠被for循環的都是可迭代的# 可迭代的內部都有__iter__方法# 只要是迭代器 必定可迭代# 可迭代的.__iter__()方法就能夠獲得一個迭代器# 迭代器中的__next__()方法能夠一個一個的獲取值