Python特殊的迭代器之yield生成器

2021-08-30 22:00:45 字數 490 閱讀 8570

什麼是可迭代物件?有句通俗的話講是:可遍歷就可迭代

在迭代器中必須要有以下兩種方法同時存在才能成為迭代器:

①: iter函式: 獲取可迭代物件的迭代器,會呼叫可迭代物件身上的__iter__方法

②: next函式: 獲取迭代器中下乙個值,會呼叫迭代器物件身上的__next__方法

但是還有這樣一種特殊的迭代器,沒有以上兩種方法,只有乙個關鍵字:yield

當乙個函式中存在yield關鍵字時,那麼它就不在是乙個函式了,而是乙個特殊的迭代器,

兩種啟動方法, next( ) , 生成器物件.send( )

詳見下圖:

以上為個人總結,如有不對的地方,請多指教!

python之迭代器

可迭代物件就是序列觀念的通用化,如果物件是實際儲存的序列,或者可以在迭代工具環境 eg for迴圈 中一次產生乙個結果的物件,就可看成是可迭代的。可迭代物件包括實際序列和按照需求而計算的虛擬序列。常見的迭代工具 for迴圈 列表解析 in成員關係測試以及map內建函式等。1.檔案迭代器 readli...

Python之迭代器

我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。可以使用...

python之迭代器

首先需要搞清楚兩個概念 可迭代,迭代器,兩者不能混為一談。可以直接作用於for迴圈的物件統稱為可迭代物件 iterable python裡可以用isinstance iterable 來檢測第乙個引數是不是可迭代的 這裡第乙個引數是乙個列表 注意,可迭代和 迭代器 是不一樣的!可以被next 函式呼...