python3.5進階(三)-------------實現多工之協程(生成器,迭代器)
阿新 • • 發佈:2018-11-10
1.迭代器:迭代是訪問集合元素的一種方式,迭代器是可以記住遍歷的位置的物件,迭代器物件從集合的第一個元素開始訪問,直到所有訪問結束,迭代器只能前進不能後退。判斷一個數據型別是否可以迭代,看是否能for迴圈。如(字串,列表,元祖...)序列可以迭代,數字不能迭代,或通過isintance([11,12,13],Iterable),判斷前者([11,12,13])是否是可迭代(Iterable)的。
2. 列表與迭代器下各自表示斐波拉契數列的方式:迭代器可以通過for迴圈取裡面的值,也可以通過list(Fibonacci)、tuple(Fibonacci)獲取裡面的值。
3. 生產器:即特殊的迭代器。在一個函式中如果存在yield語句,就會把函式變成一個生成器模板,然後通過for迴圈呼叫該函式。
4. 生成器的next(obj)和obj.send(引數)的2種開啟方式。
5. 協程(生成器)實現多工的案例:
5.1 yeild下的協程:不常用
5.2 greedlet下的協程:不常用
5.3 gevent下的協程的多工案例:推薦使用
5.4 gevent下的協程的多工案例,下載網路上的圖片到本地:
6. 執行緒,程序,協程的對比: