본문 바로가기

카테고리 없음

Python기본 _ 제너레이터

이번 포스팅에서는 파이썬의 제너레이터의 대해서 살펴본다. 제너레이터의 사용새는 시간이 오래걸리고 단계적으로 사용되는 함수를 정의했다면, 이 함수를 단계적으로 실행하고 파악할 수 있는 방법이라고 보면 된다.

이것만 잘 활용해도 코딩을 하고, 테스팅하는데 매우 유용할 것 같다.

 

def counter(num=10):
    for _ in range(num):
        yield 'run'


def greeting():
    yield 'Good morning' #파이썬에서는 yield라고 쓰면 제너레이터라고 판단
    yield 'Good afternoon'
    yield 'Good night'

g = greeting() # 제너레이터 실행

print(next(g))
print("@@@@")
print(next(g))
print("@@@@")
print(next(g))
print("@@@@")

#제너레이터를 쓰는 이유 : 오랜 실행이 걸리는 합수가 있을떄, 제너레이터로 나누어서 실행하면 편리함

def kang():
    yield "Good Morning"
    for i in range(1):
        print(i)
    yield "Good After Noon"
    for i in range(2):
        print(i)
    yield "Good Night"
    for i in range(3):
        print(i)

k = kang()

print(next(k))

print(next(k))

print(next(k))