본문 바로가기

Python/Python

[Python] yield로 제네레이터 함수 만들기

반응형

이번 포스팅에서는 yield로 제네레이터 함수를 만드는 방법에 대해 알아보려고 한다. 제네레이터는 이터레이터를 생성해주는 함수이다. 제네레이터, 이터레이터에 대한 포스팅은 이전에 게시했던 적이 있다. 여기서는 yield를 사용해서 제네레이터 함수를 만드는 방법에 대해 간단히 알아보자.

 

Python

 

다음과 같이 yield를 활용해서 0부터 9까지 출력하는 제네레이터 함수를 만들어보자.

 

def generate_num():
    for i in range(0, 10):
        yield i

 

이제 이 generate_num() 함수가 제네레이터 함수로서 제대로 기능하는지 살펴보자. 제네레이터는 list, set, tuple을 씌우게 되면 모든 원소를 담고 있는 하나의 객체로 반환이 되는데, 이 generate_num() 함수도 그렇게 되는지 살펴보자.

 

 

출력이 잘 된다. 그러면 이제 loop 문을 사용해서 원소를 하나씩 출력해보자.

 

for i in generate_num():
    print(i)

 

잘 출력이 되는 것을 알 수 있다. 기타 이터레이터에서 사용이 가능한 next 메소드도 잘 동작한다.

 

# Reference

- yield 사용법

 

반응형