Generator 제네레이터

  • 루프의 반복 동작을 제어할 수 있는 루틴 형태
    • 숫자 1억 개를 만들어 계산하는 프로그램이 존재할 때, 기존의 방식으로는 숫자 1억 개를 만들어서 어딘가에 저장하고 있어야 한다
    • 제너레이터만 생성해두고 필요할 때마다 숫자를 생성하는 방식을 사용할 수 있다
    • yield 구문을 사용하면 제너레이터를 리턴할 수 있다
      • 기존의 return은 값을 리턴하고 모든 함수의 동작을 종료하지만, yield 는 제너레이터가 여기까지 실행 중이던 값을 내보낸다는 의미
      • 중간 값을 리턴하고 다음 함수는 종료되지 않고 계속해서 맨 끝에 도달할 때까지 실행된다는 것
def generator:
	yield 1
	yield 'string'
	yield True
 
g = generator()
  • next(g) → 1
  • next(g) → ‘string’
  • next(g) → True