關系圖

1.可迭代物件(iterable)
一個具備__iter__()方法的物件,就是一個可迭代物件,但是要成為一個正常的可迭代物件那么就需要遵循協議,這個方法必須返
回一個迭代器,
可迭代協議: 含__iter__()方法,且可迭代物件中的__iter__()方法回傳的是一個對應的迭代器,(如list對應的迭代器就是
list_iterator)
以下代碼MyList 實作了__iter__方法,說明這個是一個可迭代物件,而不是一個迭代器,但這個不是一個真正的迭代物件,因為沒
有回傳一個迭代器,也就是沒有遵循協議,

2.迭代器(iterator)
python學習交流Q群:906715085#### 1.迭代是Python最強大的功能之一,是訪問集合元素的一種方式, 2.迭代器是一個可以記住遍歷的位置的物件, 3.迭代器物件從集合的第一個元素開始訪問,直到所有的元素被訪問完結束,迭代器只能往前不會后退, 4.迭代器有兩個基本的方法:iter() 和 next(),

- 字串,串列或元組物件都可用于創建迭代器:


- 查看迭代器原始碼類,可以看到整個類實作了__iter__和__next__兩個魔法方法,

3.生成器(generator)
生成器是一種特殊的迭代器,不需要手動的撰寫__iter()__和__next()__方法,因為yeild關鍵字已經包含了這兩種方法,
注意事項:
2.因為生成器(generator)一定是迭代器,所以生成器也是一種懶加載的模式生成值(即需要用的時候才會生成資料,不需要的時候不會生成)
1.生成器有兩個實作方法:
a. 生成器運算式:將串列推導式的[]改成()即可得到生成器
b. 生成器函式:呼叫yield關鍵字即可,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492465.html
標籤:Python
上一篇:Python圖片壓縮處理
