[파이썬]

[파이썬] 제너레이터와 yield 키워드

뽕규의 스케치북 2025. 2. 8. 00:27
728x90

제너레이터

제너레이터란 iterator를 직접 만들 때 사용하는 코드

yield 키워드를 사용하면 해당 함수는 제너레이터 함수가 되며 일반 함수와 달리 호출해도 함수 내부의 코드가 실행되지 않는다

제너레이터의 함수는 next() 함수를 사용해서 내부의 코드를 작동할 수 있다

next() 함수 사용 시 yield 키워드를 다시 만나기 전까지의 내용이 실행되며

반환값으로 yield 키워드 뒤에 있는 내용이 반환된다

def test():
    print("yield 0")
    yield 1
    print("hello")
    print("yield 1")
    yield 0
    print("yield 2")
    yield -1
    
output = test()

a=next(output)
b=next(output)
c=next(output)
print(a,b,c)

#result
yield 0
hello
yield 1
yield 2
1 0 -1
    

generator의 경우 next() 함수를 호출했을 때 yield 키워드를 만나지 못하면 StopIteration 예외가 발생하니 유의할 것

728x90