Generator(제너레이터)는 Iterator를 반환하는 함수이며, yield
키워드를 사용하여 생성할 수 있습니다. 함수 내에서 yield
를 사용하면 함수는 제너레이터를 반환합니다. 제너레이터는 모든 결과값을 메모리에 저장하지 않기 때문에 좋은 성능을 낼 수 있습니다.
Generator의 함수 목록을 확인해보면, Iterator에서 볼 수 있는 __iter__
와 __next__
함수가 포함되어 있는 것을 확인할 수 있습니다. __next__
함수가 포함되어 있기 때문에 next()
함수를 사용하여 제너레이터의 각 요소에 접근할 수 있습니다.
for
반복문을 활용하여 Generator의 요소에 접근할 수 있습니다.
Iterator와는 달리, Generator에 더 이상 출력할 요소가 없으면 StopIteration
에러가 자동적으로 발생합니다.
References
- https://dojang.io/mod/page/view.php?id=2412