본문 바로가기
카테고리 없음

파이썬 "yield" 설명과 샘플코드

by 뷰티풀스택 2023. 7. 2.
반응형

"yield"는 제너레이터 함수에서 사용되는 키워드입니다. 제너레이터는 이터레이터(iterator)를 생성하는 유용한 도구입니다. 이 기능을 사용하면 값을 반환하고 함수의 실행을 일시적으로 일시 중단할 수 있으며, 다음 호출 시 함수의 상태를 유지할 수 있습니다.

 

"yield"는 제너레이터 함수에서 값을 반환합니다. 그러나 "return"과 다른 점은, 제너레이터 함수 실행을 중단하고 다음 호출때 재개할 수 있다는 것입니다. 제너레이터 함수의 실행이 중단될 때, 함수 내의 로컬 변수 및 상태는 보존되며 동일한 상태로 재호출됩니다.

 

다음은 "yield"를 사용한 간단한 예제 코드입니다:

 

def generator_function():
    for i in range(5):
        yield i



# 제너레이터 객체 생성
my_generator = generator_function()


# 제너레이터 함수 호출 및 값 출력

print(next(my_generator))  # 0

print(next(my_generator))  # 1

print(next(my_generator))  # 2

print(next(my_generator))  # 3

print(next(my_generator))  # 4

 

이 예제에서 우리는 "generator_function"이라는 간단한 제너레이터 함수를 정의하고, "yield"문을 사용하여 값을 반환하고 실행을 일시 중단합니다. 그리고 "my_generator"라는 제너레이터 객체를 생성하고, "next()" 함수를 사용하여 값을 차례로 가져옵니다.

 

"yield" 키워드를 사용하면 매우 큰 데이터 집합을 처리하는 데 유용합니다. 함수가 모든 값을 한 번에 반환하지 않고 필요한 만큼 생성하거나, 메모리를 효율적으로 사용할 수 있습니다.

 

더 많은 정보를 원하시면, Python 공식 문서의 "yield expressions" 섹션을 참조하세요: https://docs.python.org/ko/3/reference/expressions.html#yield-expressions

반응형

댓글