yield from

매일 공부(ML)·2023년 4월 13일
0

Fluent Python

목록 보기
105/130

제어 흐름

반복형,반복자,제너레이터

yield from

다른 제너레이터에서 생성된 값을 상위 제너레이터 함수가 생성해야할 때는 전통적으로 중첩된 for 루프를 사용했다.

def chain(*iterables):
	for it i iterables:
    	for i in it:
        	yield i
s = 'ABC'
t = tuple(range(3))
list(chain(s,t))

chain() 제너레이터 함수는 입력받은 각각의 반복형에 차례대로 위임된다.

def chain(*iterables):
	for i in iterables:
    	yield from i
list(chain(s,t))

yielf from i 문이 내부 for 루프를 완전히 대체한다.

루프를 대체하는 일 외에도 yielf from은 외부 제너레이터의 호출자와 내부 제너레이터를 연결하는 통로로 만들다.

제너레이터를 코루틴으로 사용해서 호출자 코드에 값을 생성해줄 뿐만 아니라 호출자 코드에서 가져온 값을 소비하는 경우에는 정말 중요해진다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글