[Python] 생성기

def gene(n):

    print “Generator start”

    while n < 10:

        yield n     #현재 n 값을 반환, 생성기 자체는 종료되지 않고 멈춰있음

        n += 1

    print “Generator end”

for i in gene(1):    #순차적으로 생성기 호출 (next)

    print i

r=1

g=gene(6)

while r <= 5:

    try:    #StopIteration 예외 처리를 위한 try catch 구문

        print g.next()    #순차적으로 생성기 호출

        r += 1

    except StopIteration:   #StopIteration 예외가 발생하면 반복문을 빠져나온다

        break


댓글 남기기

바로가기