Choose a default theme

You can change your theme from the menu

Python 생성기

Python 생성기는 값을 한꺼번에 저장하지 않고 필요할 때 순서대로 내보내는 반복 처리 방식이다.

원리

yield를 포함한 함수는 호출 시 생성기 객체를 반환한다. 반복을 진행할 때 다음 yield까지 실행하며 중간의 지역 상태를 유지한다.

예시

큰 로그를 한 줄씩 읽어 조건에 맞는 기록만 내보내면 모든 결과를 미리 리스트에 담지 않아도 된다. 소비자는 for 문으로 순회할 수 있다.

주의할 점

생성기는 보통 한 번 소진하면 같은 객체를 처음부터 다시 순회할 수 없다. 지연 실행 때문에 오류가 소비 시점에 나타날 수 있고 열린 자원의 종료 조건도 관리해야 한다.

참고 자료