Python에서 반복자 생성
Python에서 반복자를 작성하려면 __iter__()와 __iter__() 및 두 가지 필수 메서드를 지정하는 반복자 프로토콜을 구현해야 합니다. __다음__(). 이러한 메서드는 객체가 일련의 값을 통해 초기화하고 반복할 수 있는 방법을 정의합니다.
반복자 프로토콜 이해
__iter__()에서는 반복자 객체가 반환됩니다. 일반적으로 루프 시작 시 암시적으로 호출됩니다. __next__()는 시퀀스의 다음 값을 반환하는 기본 메서드입니다. Python 2 사용자의 경우 이 메서드를 next()라고 합니다. 모든 값이 소진되면 __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 # Usage: for c in Counter(3, 9): print(c)
이렇게 하면 다음이 생성됩니다. 출력:
3 4 5 6 7 8
반복기에 생성기 사용
생성기는 반복기를 생성하기 위한 대체 메커니즘을 제공합니다. 생성기 함수는 한 번에 하나씩 값을 생성하여 반복자 프로토콜을 효과적으로 구현합니다.
def counter(low, high): current = low while current < high: yield current current += 1 # Usage: for c in counter(3, 9): print(c)
위 코드는 Counter 클래스와 동일한 출력을 생성합니다.
추가 리소스
반복자에 대한 포괄적인 이해를 위해서는 David Mertz의 기사 "Iterators and Simple"과 같은 리소스를 참조하세요. 발전기."
위 내용은 Python에서 반복자를 어떻게 만들고 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!