DAY13學習筆記

2022-08-22 05:57:09 字數 1186 閱讀 5149

疊加多個裝飾器

當乙個被裝飾的物件同時疊加多個裝飾器時

裝飾器的載入順序是:自下而上。

迭代器

什麼是迭代器:迭代指的是乙個重複的過程,每一次重複都是基於上一次的結果而來的。

迭代器指的是迭代取值的工具,該工具的特點是可以不依賴於索引取值。

為何要用迭代器:為了找出一種通用的、可以不依賴於索引的迭代取值方式。

如何用迭代器:可迭代的物件:但凡內建有:__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.最小高度的相容設定方法 了解...