인프런 커뮤니티 질문&답변

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

병행성 - 제너레이터(2-1)

generator 예제 2번 질문입니다

작성

·

157

0

def generator_ex1():
    print('Start')
    yield 'A point'
    print('Continue')
    yield 'B point'
    print('End')

다음과 같이 코드 작성 후

temp2 = [x * 3 for x in generator_ex1()]

리스트 컴프리헨션을 실행하니 

Start

Continue

End

라는 결과가 나왔습니다. 리스트 컴프리헨션 안의 generator_ex1()을 실행하면서 나온 결과라고 생각하는데요,

반면 위의 리스트 컴프리헨션을 지운 후 

temp3 = (x * 3 for x in generator_ex1())

다음과 같이 제너레이터 익스프레션 실행을 하여도 아무런 결과값이 나오지 않았습니다. 표현식 안의 generator_ex1()이 실행되지 않은 것으로 보이는데, 두 과정 사이에 어떤 차이가 있는 것인지 궁금합니다

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

next가 호출되기 전까지는 대기 상태로 존재합니다.

반면에 위에 코드는 자동으로 다음 원소를 끝까지 순회합니다.~

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

질문하기