疊加多個裝飾器
當乙個被裝飾的物件同時疊加多個裝飾器時
裝飾器的載入順序是:自下而上。
迭代器
什麼是迭代器:迭代指的是乙個重複的過程,每一次重複都是基於上一次的結果而來的。
迭代器指的是迭代取值的工具,該工具的特點是可以不依賴於索引取值。
為何要用迭代器:為了找出一種通用的、可以不依賴於索引的迭代取值方式。
如何用迭代器:可迭代的物件:但凡內建有:__iter__方法的物件都稱之為可迭代的物件。(str,list,tuple,dict,set,檔案物件)
迭代器的物件:既內建有__iter__方法,又內建有__next__方法。(檔案物件)
(呼叫可迭代物件內建的__list__方法會有乙個返回值,該返回值就是對應的迭代器物件)
關於__iter__方法:
呼叫可迭代物件的__iter__會得到乙個迭代器物件。
呼叫迭代器物件的__iter__會得到迭代器本身。
總結迭代器的優缺點:
優點:提供了一種通用的、可以不依賴於索引的迭代取值方式。
同一時刻在記憶體中只有乙個值,更加節省記憶體。
缺點:取指定值不如索引靈活,並且迭代器是一次性的。
無法預知迭代器資料的個數。
(for迴圈準確的說應該是迭代器迴圈,for迴圈的原理如下:1. 先呼叫in後面那個值的__iter__方法,得到迭代器物件。
2. 執行迭代器.__next__()方法得到乙個返回值,然後賦值給乙個變數k,執行迴圈體** 。3.
迴圈往復,直到迭代器取值完畢丟擲異常然後捕捉異常自動結束迴圈。)
自定義迭代器
yield關鍵字:只能用在函式中。
在函式中但凡包含有yield關鍵字,再去執行函式,就不會立刻執行函式體**了。
會得到乙個返回值,該返回值稱之為生成器物件,生成器本質就是迭代器。
總結:提供一種自定義迭代器的解決方案。
yield可以用於返回值。
yield和return:相同點:都可以用於返回值。
不同點:yield可以暫停函式,yield可以返回多次值,而return只能返回一次值,函式就立即終止。
生成器
三元表示式
列表生成式
生成器表示式
字典生成式
C 學習筆記 day13
1 資料 記憶體中 變數 磁碟上 檔案 2 把資料從其他的裝置搬到記憶體中 輸入 讀 把記憶體中的資料放到其他裝置中 輸出 寫 3 流物質的定向移動,輸入輸出流中是資料的定向移動 輸入流的源頭 檔案 目的地 記憶體 輸出流的源頭 記憶體 目的地 檔案 4 標準輸出裝置 顯示器 標準輸入裝置 鍵盤 鍵...
力扣學習筆記day13
編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with value 8 輸...
前端學習Day13
一.如果考慮相容最小高度的設定 了解 1.正常專案中 最小高度直接用min height即可。如果考慮相容 min height 在ie6不相容,ie6預設把height解析成最小高度。注 如果height 和 min height同是出現,執行height固定高度。2.最小高度的相容設定方法 了解...