[파이썬]
[파이썬] 제너레이터와 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