제너레이터

Pywiki
Sam (토론 | 기여)님의 2021년 12월 15일 (수) 00:10 판
둘러보기로 가기 검색하러 가기

1 개요

순회할 수 있는 데이터형.

for과 함께 쓰여 순회용으로 만드는 것. 루프의 작용을 제어하기 위해 쓰이는 함수.

연속적인 값들을 만들어낸다.

return이 아닌, yield를 통해 돌려받는다. 이를 이용해 한 번 호출될 때마다 하나의 값을 뱉어낸다.(즉, 인공지능 등에서 학습용 데이터를 메모리에 모두 올려두는 게 아니라, 필요할 때마다 해당 데이터를 빼낼 수 있게 구성된 것이다.) => 덕분에 적은 메모리 만으로도 만들 수 있다.

(근본적으로 함수와 다를 바 없는데.. 함수와 다른 이름으로 분류되네)

1.1

def generator():
    list = range(3)  # 0에서 3 미만까지.
    for i in list:
        yield i

mygen = generator()  # 제너레이터를 생성하고..
for in mygen:
    print(i)

0, 1, 2가 출력된다.