파이썬 생성 반복자
반복자 생성
객체/클래스를 반복자로 생성하려면 메서드
__iter__()
와
__next__()
객체를 구현해야 합니다.
파이썬 클래스/객체 장 에서 배웠듯이 모든 클래스에는 __init__()
객체가 생성될 때 초기화를 수행할 수 있는 이라는 함수가
있습니다.
이 __iter__()
메서드는 비슷하게 작동하며 작업(초기화 등)을 수행할 수 있지만 항상 반복자 개체 자체를 반환해야 합니다.
이 __next__()
메서드를 사용하면 작업을 수행할 수 있으며 시퀀스의 다음 항목을 반환해야 합니다.
예시
1부터 시작하는 숫자를 반환하는 반복자를 만들고 각 시퀀스는 1씩 증가합니다(1,2,3,4,5 등 반환).
class MyNumbers:
def __iter__(self):
self.a =
1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))