1. 程式人生 > >python3.5進階(三)-------------實現多工之協程(生成器,迭代器)

python3.5進階(三)-------------實現多工之協程(生成器,迭代器)

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. 執行緒,程序,協程的對比: