
700
4
부
제어 흐름
하지만
itertools.count( )
는
step
을 반복해서 더하므로, 이 함수가 생성하는 실수형 수열
은 [예제
17
-
13
]만큼 정확하지 않다.
[예제
17
-
14
]에서 설명하려는 것은 제너레이터를 구현할 때 표준 라이브러리에서 무엇이 제
공되는지 확인하라는 것이다. 표준 라이브러리를 확인하지 않으면 이미 구현된 것을 다시 구현
하는 일이 생긴다. 그래서 다음 절에서는 바로 사용할 수 있는 여러 제너레이터 함수를 살펴본다.
17
.
9
표준 라이브러리의 제너레이터 함수들
텍스트를 한 줄씩 반복하게 해 주는 텍스트 파일 객체에서부터 디렉터리 안에 있는 파일들의
이름을 생성해
for
루프 안에서 재귀적으로 간단히 파일을 검색하게 해 주는
os.walk( )
함수
(
https://fpy.li/17-12
)에 이르기까지, 표준 라이브러리에는 많은 제너레이터가 있다.
os.walk( )
제너레이터 함수가 멋지기는 하지만, 이 절에서는 반복형 객체를 인수로 받아 선
택되거나, 계산되거나, 재정렬된 항목을 생성하는 제너레이터를 반환하는 제네릭 함수를 위주
로 살펴본다. 잠시 후에 나오는 표에서는 내장 모듈 및
itertools
와
functools
모듈에서 제
공하는 제너레이터 함수
20
개를 간략히 설명한다. 편의상 함수가 정의된 위치와 상관없이 개
념적인 기능별로 ...