Python for迴圈內部實現的一個sample

FrankYou發表於2016-08-03
#!/usr/bin/env python
# -*- coding: utf-8 -*-
it = iter([1,2,3,4,5])
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration as e:
        print('catch StopIteration')
        break

因為Python的Iterator物件表示的是一個資料流,Iterator物件可以被next()函式呼叫並不斷返回下一個資料,直到沒有資料時丟擲StopIteration錯誤。可以把這個資料流看做是一個有序序列,但我們卻不能提前知道序列的長度,只能不斷通過next()函式實現按需計算下一個資料,所以Iterator的計算是惰性的,只有在需要返回下一個資料時它才會計算。

相關文章