迭代器協(xié)議:
專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、成都商城網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)建站的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
迭代器協(xié)議,是指對(duì)象(實(shí)例)能夠使用next函數(shù)獲取下一項(xiàng)數(shù)據(jù),在沒有下一項(xiàng)數(shù)據(jù)之前觸發(fā)一個(gè)StopIteration異常來終止迭代
next(it) 對(duì)應(yīng)__next__(self)方法
iter(obj) 對(duì)應(yīng)__iter__(self)方法,通常返回一個(gè)可迭代對(duì)象
class odd:
def __init__(self,begin,end):
self.beg = begin
self.end = end
self.cur = begin #數(shù)據(jù)的當(dāng)前位置
def __next__(self):
"""print("next被調(diào)用")"""
if self.cur >= self.end:
raise StopIteration
#此判斷獲取一個(gè)奇數(shù),
if self.cur % 2 == 0:
self.cur += 1
r = self.cur
self.cur += 1 #步長
return r
def __iter__(self):
"""__iter__被調(diào)用,返回自己作為迭代器,每次返回一個(gè)可迭代對(duì)象,調(diào)用一次__iter__"""
self.cur = self.beg
return self
o = odd(5,10)
for x in o:
print(x)
print([x for x in o])