19.3 발생자 표현식
발생자(generator) 표현식은 리스트 컴프리헨션과 비슷하지만, [] 대신 ()를 쓴다.
>>> g = (x**2 for x in range(5))
>>> g
<generator object <genexpr> at 0x7f4c45a786c0>
결과는 시퀀스 값들을 어떻게 반복할지 아는 생성자 객체다. 그러나 리스트 컴프리헨션과 달리 생성자 표현식은 한 번에 모든 값을 계산하지 않는다. 대신 값을 요청받는 것을 기다린다. 생성자 표현식에서는 내장 함수 next를 사용해 생성자의 다음(next) 값을 가져온다.
>>> next(g) 0
>>> next(g) 1