본문 바로가기
프로그래밍/python

[python] Generator 나만의 정리

by 코딩은 잼있어 2020. 12. 12.
728x90

[python] Generator 나만의 정리

Generator란 ??

Generator은 일드(yield)와 함께 사용됨. 이 generator는 next메서드로 호출이 가능함. for 문처럼 모든 값을 불러오는게 아니라 한번 호출될때마다 하나의 값만 리턴함

def generator():
    yield 12             # yield 키워드를 통해 generator을 만들어줌
    yield 23
    yield 35

test = generator()
>>> next(test)
12

>>> next(test)
23

Generator의 장점

일반 함수의 경우 호출되면 첫번째부터 마지막까지 모든 값을 리턴하고 메모리 상에서 사라진다. 하지만 generator의 경우 하나의 일을 마치면 하던일을 기억하며 대기하다가 다시 호출되면 일을 이어서하는 똑똑한 함수다. 그래서 메모리를 절약할수 있다.

이러한 generator의 경우 어디서 사용할까 ??

예를 들면 대용량 파일을 읽을때 사용할 수 있다. 대용량 파일 내에 특정 정보를 호출할 경우 일반적인 함수는 해당 파일을 다 불러서 정보를 호출한 뒤 모든 메모리를 삭제하지만, generator을 활용하면 특정 정보의 위치를 저장 시켜 나중에 다시 돌아 올수 있도록 한다. 이럴 경우 메모리와 시간을 절약할 수 있다.

728x90

'프로그래밍 > python' 카테고리의 다른 글

python을 활용한 웹 크롤링  (0) 2020.08.23
python의 클래스 기본적인 사용 및 with구문  (1) 2020.06.22