설명
Iterator는 반복 프로토콜을 구현하는 파이썬의 객체입니다. 튜플, 목록, 집합은 Python에서 내장 반복자라고 합니다. 반복 프로토콜에는 두 가지 유형의 메서드가 있습니다.
__iter__() : 이 메서드는 반복자를 초기화할 때 호출되며 next() 또는 __next__()(Python 3의 경우) 메서드로 구성된 객체를 반환해야 합니다.
next() 또는 __next__()(Python 3에서) : 이 메서드는 반복 시퀀스에서 다음 요소를 반환해야 합니다. 반복자가 for 루프와 함께 사용될 때 for 루프는 반복자 객체에서 next()를 직접 호출합니다.
예시 코드
# creating a custom iterator class Pow_of_Two: def __init__(self, max = 0): self.max = max def __iter__(self): self.n = 0 return self def __next__(self): if self.n <= self.max: result = 2 ** self.n self.n += 1 return result else: raise StopIteration("Message") a = Pow_of_Two(4) i = iter(a) print(i.__next__()) print(next(i)) print(next(i)) print(next(i)) print(next(i)) print(next(i))
출력
1 2 4 8 16 StopIteration error will be raised