<label id="btnkq"></label>
<pre id="btnkq"><small id="btnkq"><em id="btnkq"></em></small></pre>
  • 溫馨提示×

    Python迭代器協(xié)議怎樣實(shí)現(xiàn)

    小樊
    81
    2024-11-01 23:09:07
    欄目: 編程語言

    在Python中,迭代器協(xié)議是一個內(nèi)置協(xié)議,它定義了一個迭代器對象必須實(shí)現(xiàn)的方法。迭代器協(xié)議包括兩個方法:__iter__()__next__()。下面是一個簡單的示例,展示了如何實(shí)現(xiàn)一個迭代器協(xié)議:

    class MyIterator:
        def __init__(self, start, end):
            self.start = start
            self.end = end
    
        def __iter__(self):
            return self
    
        def __next__(self):
            if self.start >= self.end:
                raise StopIteration
            else:
                self.start += 1
                return self.start - 1
    
    # 創(chuàng)建一個迭代器對象
    my_iterator = MyIterator(0, 5)
    
    # 使用for循環(huán)遍歷迭代器
    for number in my_iterator:
        print(number)
    

    在這個示例中,我們創(chuàng)建了一個名為 MyIterator 的類,它接受兩個參數(shù):startend。這兩個參數(shù)定義了迭代器的范圍。

    • __iter__() 方法返回迭代器對象本身,這樣我們就可以在 for 循環(huán)中使用這個迭代器。
    • __next__() 方法負(fù)責(zé)返回序列中的下一個值。當(dāng)沒有更多的元素可以返回時,它會引發(fā) StopIteration 異常,通知 for 循環(huán)停止迭代。

    當(dāng)我們使用 for 循環(huán)遍歷 MyIterator 對象時,它會按順序打印出從 startend - 1 的整數(shù)。

    0