본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다.
yield from
식
- 파이썬 인터프리터가 사용자 대신
for
루프를 내포시키고yield
식을 처리하도록 한다. - 여러 제너레이터를 모아서 하나의 제너레이터로 합성할 때 사용할 수 있다.
- 직접 제너레이터를
for
문으로 처리할 때보다 개선된 성능을 보인다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 다음의 두 함수는 동일한 제너레이터를 반환한다.
def animate(): # -- for 루프 사용
for delta in move(4, 5.0):
yield delta
for delta in pause(3):
yield delta
for delta in move(2, 3.0):
yield delta
def animate_composed(): # -- yield from 사용
yield from move(4, 5.0)
yield from pause(3)
yield from move(2, 3.0)