>  기사  >  백엔드 개발  >  Python 생성기에서 수익률과 수익률은 어떻게 작동합니까?

Python 생성기에서 수익률과 수익률은 어떻게 작동합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-25 03:16:02410검색

How Do Return and Yield Work in Python Generators?

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에서 이제 생성기 내에서 StopIteration()을 발생시키는 것과 동일합니다. 결과적으로 StopIteration 예외에는 위 코드 조각의 값 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.