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