l = list("hello
") #
這就是在做例項化,list是乙個類
for i in l: #
先將乙個物件執行__iter__()
(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 函式呼叫並不斷返...