>백엔드 개발 >파이썬 튜토리얼 >`__iter__` 및 `__next__`를 사용하여 Python에서 사용자 정의 반복자를 구축하는 방법은 무엇입니까?

`__iter__` 및 `__next__`를 사용하여 Python에서 사용자 정의 반복자를 구축하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-17 14:56:17859검색

How to Build Custom Iterators in Python Using `__iter__` and `__next__`?

Python에서 기본 반복기 구축

값 모음을 캡슐화하는 클래스가 있고 다음을 허용하는 반복기를 생성한다고 가정해 보겠습니다. 해당 값에 순차적으로 액세스합니다.

반복자를 구축하려면 반복자 프로토콜을 구현합니다. 두 가지 방법을 정의해야 합니다.

1. __iter__(): 반복자 객체 자체를 초기화하고 반환합니다.

2. __next__(): 시퀀스의 다음 값을 반환하거나 더 이상 값이 없으면 StopIteration을 발생시킵니다.

예제 반복자:

다음 클래스를 고려하세요. 목록 값:

class Example:
    def __init__(self, values):
        self.values = values

    # __iter__ returns the iterable itself
    def __iter__(self):
        return self

    # __next__ returns the next value and raises StopIteration
    def __next__(self):
        if len(self.values) > 0:
            return self.values.pop(0)
        else:
            raise StopIteration()

사용법:

이 반복자를 사용하면 예제 클래스의 값을 반복할 수 있습니다.

e = Example([1, 2, 3])
for value in e:
    print("The example object contains", value)

이것은 다음을 인쇄합니다:

The example object contains 1
The example object contains 2
The example object contains 3

Iterator 사용자 정의:

위의 예에서 볼 수 있듯이 반복자의 next 메서드는 값을 가져오고 반환하는 방법을 제어할 수 있으므로 사용자 정의된 반복기에 더 큰 유연성을 제공합니다.

위 내용은 `__iter__` 및 `__next__`를 사용하여 Python에서 사용자 정의 반복자를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.