brunch

You can make anything
by writing

C.S.Lewis

by 내가 사는 세상 Apr 21. 2024

기초개념 - 제너레이터

Generators

반복자를 생성하는 개체

iterator 개체의 일종

특별한 종류의 함수 개체

메모리 효율적으로 실행 가능

처음에는 아무것도 실행 X

next()하면 다음 yield문 전까지 실행

next() 호출될 때까지 가만히 있으므로(실행을 미루므로) lazy evaluation

map, filter 함수도 제너레이터 함수



def countdown(n):

    for i in range(n, 0, -1):

        yield i


# def countdown(n):

#    yield from range(n, 0, -1)


counter = countdown(5)  # 제너레이터를 호출하여 반복자 개체 생성


print(next(counter))  # 5

print(next(counter))  # 4

print(next(counter))  # 3

print(next(counter))  # 2

print(next(counter))  # 1

print(next(counter))  # 더 이상 가져올 값이 없으므로 StopIteration 예외 발생

매거진의 이전글 기초개념 - 자료형 2
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari