[파이썬] yield 키워드 사용 예제

yield 키워드는 파이썬에서 제너레이터 함수를 정의하고 값을 생성하는 데 사용됩니다. 제너레이터는 값을 생성하고 함수 실행 상태를 유지한 채로 일시 중단하며, 나중에 다시 재개할 수 있습니다. 다음은 yield 키워드를 사용한 예제입니다:

# 제너레이터 함수 정의
def countdown(n):
    while n > 0:
        yield n
        n -= 1

# 제너레이터 생성
cd = countdown(5)

# 제너레이터 값을 하나씩 얻기
print(next(cd))  # 5
print(next(cd))  # 4
print(next(cd))  # 3
print(next(cd))  # 2
print(next(cd))  # 1
# print(next(cd))  # StopIteration 예외 발생 (더 이상 값이 없음)

위의 예제에서 countdown 함수는 제너레이터로 사용됩니다. yield 키워드를 통해 값을 생성하고 일시 중단하며, 제너레이터를 호출할 때마다 값을 하나씩 반환합니다. next() 함수를 사용하여 제너레이터에서 값을 가져올 수 있습니다.

주의: next() 함수를 호출할 때 제너레이터가 더 이상 값을 생성하지 않을 때 StopIteration 예외가 발생하므로 이에 대한 처리가 필요합니다.

이러한 제너레이터를 사용하면 대량의 데이터를 메모리에 한꺼번에 로드하지 않고 필요한 만큼 생성할 수 있으므로 메모리를 효율적으로 사용할 수 있습니다.