首頁 > 後端開發 > Python教學 > Python 的 __iter__ 和 __next__ 方法如何啟用迭代器建立?

Python 的 __iter__ 和 __next__ 方法如何啟用迭代器建立?

Patricia Arquette
發布: 2025-01-02 19:19:43
原創
837 人瀏覽過

How Do Python's `__iter__` and `__next__` Methods Enable Iterator Creation?

在Python 中建立迭代器

Python 迭代器是遵守迭代器協定的對象,具有__iter__() 和__next__( )

iter方法:

__iter__() 方法傳回迭代器對象,在循環開始時自動呼叫。

下一個方法:

__next__() 方法會擷取後續值,並在循環增量期間隱含呼叫。當沒有更多值可用時,它會引發 StopIteration 異常,循環結構會偵測到該異常並用於停止迭代。

例如,考慮以下簡單的計數器類別:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration
登入後複製

當利用計數器:

for c in Counter(3, 9):
    print(c)
登入後複製

輸出將be:

3
4
5
6
7
8
登入後複製

或者,生成器提供了一種更簡單的迭代器創建方法:

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1
登入後複製

使用生成器:

for c in counter(3, 9):
    print(c)
登入後複製

產生相同的輸出。在內部,生成器類似於 Counter 類,支援迭代器協定。

有關迭代器的全面概述,請參閱 David Mertz 的文章「迭代器和簡單產生器」。

以上是Python 的 __iter__ 和 __next__ 方法如何啟用迭代器建立?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板