您好,登錄后才能下訂單哦!
迭代器協議:
迭代器協議,是指對象(實例)能夠使用next函數獲取下一項數據,在沒有下一項數據之前觸發一個StopIteration異常來終止迭代
next(it) 對應__next__(self)方法
iter(obj) 對應__iter__(self)方法,通常返回一個可迭代對象
class odd:
def __init__(self,begin,end):
self.beg = begin
self.end = end
self.cur = begin #數據的當前位置
def __next__(self):
"""print("next被調用")"""
if self.cur >= self.end:
raise StopIteration
#此判斷獲取一個奇數,
if self.cur % 2 == 0:
self.cur += 1
r = self.cur
self.cur += 1 #步長
return r
def __iter__(self):
"""__iter__被調用,返回自己作為迭代器,每次返回一個可迭代對象,調用一次__iter__"""
self.cur = self.beg
return self
o = odd(5,10)
for x in o:
print(x)
print([x for x in o])
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。