迭代器協議

2022-09-09 04:42:13 字數 1112 閱讀 5994

l = list("

hello

") #

這就是在做例項化,list是乙個類

for i in l: #

先將乙個物件執行__iter__()

print

(i)#

class

foo:

def__init__

(self,n):

self.n =n

def__iter__

(self):

return

self

def__next__

(self):

if self.n == 13:

raise stopiteration("

終止了"

) self.n += 1

return

self.n

f1 = foo(10)

#print(f1.__next__())

#print(f1.__next__())

#print(f1.__next__())

#print(f1.__next__())

for x in f1:print(x) #

for迴圈會抓捕到結束的異常,然後終止

#斐波那契數列:下乙個值是上兩個值的和。如1,2,3,5,8

class

fib:

def__init__

(self,m,n):

self.m =m

self.n =n

def__iter__

(self):

return

self

def__next__

(self):

if self.m > 100:

raise stopiteration("終止"

) self.m,self.n = self.n,self.m+self.n

return

self.m

fb1 = fib(1,2)

print(fb1.__next__

())for z in fb1:print(z)

python 迭代器協議

1 迭代器協議是指 物件必須提供乙個next方法,執行該方法要麼返回迭代中的下一項 要麼就引起乙個stopiteratior異常,以終止迭代 只能往後走不能往前退 2 可迭代物件 實現了迭代器協議的物件 如何實現 物件內部定義乙個 iter 方法 3 協議是一種約定,可迭代物件實現了迭代器協議,py...

python 迭代器協議 Python的迭代器協議

迭代器是python中的乙個高階概念,迭代器是乙個實現了迭代器協議的物件,那何為迭代器協議呢?滿足下面兩個條件就行。1 該物件實現了 iter 方法 2 該物件實現了next 方法,返回當前元素,並指向下乙個元素的位置,如果當前位置已無元素,則丟擲stopiteration異常。看下面例子 這說明列...

Python學習筆記 迭代器和迭代器協議

術語概念解釋 關於 for 迴圈 寫乙個迭代器 1 迭代器協議 迭代器協議是一種約定,即物件必須提供乙個 next 方法,執行該方法要麼返回迭代中的下一項,要麼丟擲乙個 stopiteration 異常,終止迭代。2 迭代器 iterator 迭代器是一種物件,一種可以被 next 函式呼叫並不斷返...