由python內置函數iter得到一個迭代器對象, 由可迭代對象得到迭代器
l = ['1', '2', '3', '4']
s = 'dimples'
for x in l:
print x
- 列表和字符串是可迭代對象
- 列表滿足了特殊的接口: l.__iter__()
- 列表調用iter(l),實際上內部調用了l.__iter__()
- 字符串並沒有這個方法,但是有s.__getitem__()方法
t = iter(l)
print t.next()
print t.next()
print t.next()
print t.next()
輸出:
1
2
3
4
總結:
**for循環工作流程**:
- 先由 l 得到一個t(iter(l))對象,
- 然後不停的調next,
- 直到最終捕獲到一個StopIteration的異常,跳出整個for循環