Python隨心記 迭代器協議和for迴圈機制

2022-06-23 03:15:10 字數 1439 閱讀 9095

迭代器協議:

物件必須提供乙個next方法,執行該方法要命返回迭代中下一項,要麼就引起乙個stoplteration異常,以終止迭代(只能往後走不能往前退)

可迭代物件:

實現了迭代器協議的物件(如何實現:物件內部定義乙個__iter__()方法)

協議是一種約定,可迭代物件實現了迭代器協議,pythond額內部工具(如for迴圈,sum、min、max函式)使用迭代器協議訪問物件

x = '

hello

'iter_test = x.__iter__

()print

(iter_test)

print(iter_test.__next__

())print(iter_test.__next__

())print(iter_test.__next__

())print(iter_test.__next__

())print(iter_test.__next__())

for迴圈基於迭代器協議先執行x.__iter__(),跟索引沒有半毛錢關係

x = [1,2,3,4]

print

(x[0])

iter_x = x.__iter__

()print(iter_x.__next__())

x = [1,2,3,4]

#列表的遍歷

index =0

while index print

(x[index])

index += 1

x = 

for i in

x:

print

(i)#

for迴圈的執行原理如下 -_-

iter_x = x.__iter__

()print(iter_x.__next__())

模擬fon迴圈  try.....except stopiteration  捕捉異常

x = 

diedai_x = x.__iter__

()while

true:

try:

print(diedai_x.__next__

())

except

stopiteration:

print('

迭代完畢,迴圈終止')

break

生成器

yield #生成器定義關鍵字

def

test():

yield 1

yield 2

yield 3g = test() #

得到生成器表示式

print(g)

迭代器協議和for迴圈機制

一 什麼是迭代和遞迴 迭代和遞迴都是迴圈的一種。簡單地說,遞迴是重複呼叫函式自身實現迴圈。迭代是函式內某段 實現迴圈,而迭代與普通迴圈的區別是 迴圈 中參與運算的變數同時是儲存結果的變數,當前儲存的結果作為下一次迴圈計算的初始值。迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,...

迭代器協議和for迴圈工作機制

一,1.迭代器協議 物件必須提供乙個next方法,執行該方法要麼返回迭代中的下一項,要麼就引起乙個stoplteration異常,以終止迭代,只能往後走,不能往前退。可迭代物件 實現了迭代器協議的物件 例子 l 1,2,3 iter text l.iter 遵循迭代器協議,生成可迭代物件 print...

迭代器協議和for迴圈工作機制

舉個例子 遞迴 假如我去問路,路人甲看我長得盛世容顏,但是他不知道,他就去幫我問路人乙去了,路人乙跟路人甲說我也不知道,但一看路人甲美若天仙,就說,我去幫你問問路人丙,完了可能得到答案 迭代 依然是問路,我去問路人甲,路人甲一看我長得車禍現場,就說我不知道,你去問問路人乙去吧。2.可迭代物件 實現了...