溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python3 函數迭代器

發布時間:2020-08-06 08:41:54 來源:網絡 閱讀:309 作者:calabash_LY 欄目:編程語言

迭代器協議:

迭代器協議,是指對象(實例)能夠使用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])


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女