Python 생성기의 반환 및 산출
Python 3.3 이전 버전에서는 생성기 함수 정의 내에서 반환 및 산출 문을 동시에 사용하면 결과적으로 오류가 발생합니다. 그러나 이 동작은 Python 3.3에서 변경되었습니다.
다음 코드를 고려하세요.
<code class="python">def f(): return 3 yield 2</code>
x = f()를 호출하면 생성기가 생성되고 x.__next__()는 생성기를 발생시킵니다. StopIteration 예외입니다. 이 동작은 값 3을 반환하는 단순히 3을 반환하는 것과 다릅니다.
이는 Python 3.3에서
또한, Yield from은 생성기를 다른 생성기로 делегировать 허용합니다. 다음 예를 고려하십시오.
<code class="python">def f(): return 1 yield 2 def g(): x = yield from f() print(x) for _ in g(): pass</code>
이 코드는 1을 인쇄합니다. g는 실행을 f에 위임하고 f에서 반환된 값(즉, 1)은 x에 할당됩니다. 그러나 f의 Yield 2 문은 실행이 g에 위임되었기 때문에 실행되지 않습니다.
위 내용은 Python 생성기에서 수익률과 수익률은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!