본문 바로가기

CS Fundamental

[CS Fundamental] 파이썬 Yield 키워드

8. (파이썬 사용자) yield 키워드의 뜻이 무엇인가요?
    a. yield가 좋은 이유는 무엇인가요?
    b. yield의 내부 구현이 어떻게 되어 있을까요?

 

 

How to Use Generators and yield in Python – Real Python

 

How to Use Generators and yield in Python – Real Python

In this step-by-step tutorial, you'll learn about generators and yielding in Python. You'll create generator functions and generator expressions using multiple Python yield statements. You'll also learn how to build data pipelines that take advantage of th

realpython.com

 

1) 파이썬 Yield 명령어 이해하기

- 전반적으로 Yield는 상당히 간단한 문장입니다. 

  주된 역할은 return 명령문과 비슷한 방식으로 Generator 함수의 흐름을 제어하는 것입니다. 

  Python Yield 문장에는 몇 가지 요령이 있습니다

 

- Generator 함수를 호출하거나 Generator 표현식을 사용하면,

  Generator라는 특수 iterator를 반환합니다. 

  이 iterator를 변수에 할당하여 사용할 수 있습니다. 

  next()와 같이 생성기에서 특수 메서드를 호출하면 함수 내의 코드가 yield까지 실행됩니다.

 

- Python Yield 명령어가 적중하면, 프로그램은 함수 실행을 중단하고,

  생성된 값을 호출자에게 반환합니다. 

  함수가 중단되면 해당 함수의 상태가 저장됩니다. 

 

- 여기에는 Generator에 로컬인 모든 변수 바인딩, 내부 스택 및 예외 처리가 포함됩니다. 

 

- 이렇게 하면 Generator의 메서드 중 하나를 호출할 때마다 함수 실행을 재개할 수 있습니다.

   이런 식으로 모든 함수 평가는 Yield 직후에 다시 시자고딥니다.

   여러 Python Yield 문장을 사용하여 이것이 실제로 어떻게 실행되는지 확인할 수 있습니다.