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
'[파이썬]' 카테고리의 다른 글
[파이썬] 모듈의 기초 사용법과 내장 모듈들(sys, math, datetime, time, urllib) 살펴보기 (0) | 2025.02.12 |
---|---|
[파이썬] try except 구문을 이용한 예외 처리와 raise 키워드 (0) | 2025.02.10 |
[파이썬] 파이썬에서 파일 작업하기 (기초) (0) | 2025.02.08 |
[파이썬] 튜플과 람다 (0) | 2025.02.08 |
[파이썬] recursion(재귀)와 메모화의 중요성 (0) | 2025.02.08 |