Yield 문은 함수의 실행을 일시 중지하고 호출자에게 값을 다시 보내지만 함수가 중단된 부분부터 다시 시작할 수 있도록 충분한 상태를 유지합니다. 함수가 재개되면 마지막 항복 실행 직후에 계속 실행됩니다. 이를 통해 코드는 한 번에 계산하여 목록처럼 다시 보내는 대신 시간이 지남에 따라 일련의 값을 생성할 수 있습니다.
예를 들어 보겠습니다.
파이썬
베이스밴드 대 광대역
# A Simple Python program to demonstrate working> # of yield> # A generator function that yields 1 for the first time,> # 2 second time and 3 third time> def> simpleGeneratorFun():> >yield> 1> >yield> 2> >yield> 3> # Driver code to check above generator function> for> value>in> simpleGeneratorFun():> >print>(value)> |
>
인도 여배우 라니 무케르지
중앙 CSS의 버튼
>
산출:
1 2 3>
반품 지정된 값을 호출자에게 다시 보내는 반면 생산하다 일련의 값을 생성할 수 있습니다. 시퀀스를 반복하고 싶지만 전체 시퀀스를 메모리에 저장하고 싶지 않을 때 Yield를 사용해야 합니다. Python에서는 Yield가 사용됩니다. 발전기 . 생성기 함수는 일반 함수와 동일하게 정의되지만 값을 생성해야 할 때마다 반환 대신 Yield 키워드를 사용하여 수행합니다. def의 본문에 Yield가 포함되어 있으면 해당 함수는 자동으로 생성기 함수가 됩니다.
파이썬
C의 2차원 배열 프로그램
# A Python program to generate squares from 1> # to 100 using yield and therefore generator> # An infinite generator function that prints> # next square number. It starts with 1> def> nextSquare():> >i>=> 1> ># An Infinite loop to generate squares> >while> True>:> >yield> i>*>i> >i>+>=> 1> # Next execution resumes> ># from this point> # Driver code to test above generator> # function> for> num>in> nextSquare():> >if> num>>100>:> >break> >print>(num)> |
힙 정렬 알고리즘
>
>
산출:
1 4 9 16 25 36 49 64 81 100>