1》迭代器原理及使用: 1>原理: 迭代器是訪問集合元素的一種方式,迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束;迭代器只能往前不會後退,不過這也沒什 麽,人們很少在迭代途中往後退,另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素;迭代器僅僅在迭代到某個元素時才計 ...
1》迭代器原理及使用:
1>原理:
迭代器是訪問集合元素的一種方式,迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束;迭代器只能往前不會後退,不過這也沒什 麽,人們很少在迭代途中往後退,另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素;迭代器僅僅在迭代到某個元素時才計算該元素, 而在這之前或之後元素可以不存在或被銷毀;這個特點使得它特別適合用於遍歷些巨大的或是無限的集合,比如幾個G的文件;
特點:
(1)訪問者不需要關係迭代器內部的結構,僅需要通過next()方法不斷去取下一個內容;
(2)不能隨機訪問集合中的某個值,只能從頭到尾依次訪問;
(3)訪問到一半時不能往回退;
(4)便於迴圈比較大的數據集合,節省記憶體;
2>生成一個迭代器:3中使用__next__()來查看;
2》生成器(generator):
定義:一個函數調用時返回一個迭代器,那這個函數就叫做生成器,如果函數中包含yield語法,那這個函數就會變成生成器;
yield的主要作用:
可以使函數中斷,並保存中斷狀態,中斷後代碼可以繼續往下執行,過一段時間還可以再重新調用這個函數,從上次yield的下一句開始執行;
1>生成器的生成:
2>使用yield實現多線程中的非同步併發效果:
2》裝飾器:給已經實現的功能擴展新的功能;
1>不加參數的類似裝飾器;
2>加參數的類似裝飾器;
3>裝飾器:
4>實現帶參數的複雜裝飾器:一個函數被多個裝飾器裝飾;
流程解析: