>백엔드 개발 >파이썬 튜토리얼 >Python의 `yield` 키워드는 무엇을 하며 생성기는 어떻게 사용됩니까?

Python의 `yield` 키워드는 무엇을 하며 생성기는 어떻게 사용됩니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 17:11:11630검색

What Does Python's `yield` Keyword Do and How Are Generators Used?

Python에서 "yield"의 역할이 정확히 무엇인가요?

"yield"는 생성기를 생성할 수 있는 Python의 고유한 키워드입니다. 이는 iterable의 특수한 유형입니다. Iterables는 목록 및 문자열과 같이 반복할 수 있는 값의 시퀀스를 나타냅니다. 그러나 생성기는 모든 값을 메모리에 저장하지 않는다는 점에서 이러한 생성기와 다릅니다. 대신, 한 번에 하나씩 즉석에서 값을 생성합니다.

제너레이터를 이해하려면 iterables부터 시작하는 것이 도움이 됩니다. Iterable은 __iter__() 메서드를 구현하는 객체로, iter() 함수를 통해 반복자 객체를 검색할 수 있습니다. 반복자는 시퀀스의 다음 항목을 반환하고 더 이상 항목이 남아 있지 않으면 StopIteration 예외를 발생시키는 __next__() 메서드를 구현합니다.

생성기와 "수율"의 역할

생성기 "yield" 키워드를 사용하여 생성된 반복 가능 유형입니다. 생성기는 각 "yield" 문에서 실행을 일시 중지하여 한 번에 하나의 값을 검색할 수 있다는 점에서 독특합니다. 생성기를 사용하면 일시 중지된 지점부터 실행이 다시 시작되어 다음 값이 생성됩니다. 이 프로세스는 생성기가 모든 값을 소진할 때까지 계속되며, 이 시점에서 StopIteration 예외가 발생합니다.

생성기 사용 방법

생성기를 사용하려면 다음 중 하나를 포함하는 생성기 함수를 생성합니다. 더 많은 "수익률" 진술. 이 함수는 "for" 루프를 사용하여 반복할 수 있는 생성기 개체를 반환합니다.

예:

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

이 예에서 generate_numbers()는 다음과 같은 생성기 함수입니다. 0부터 4까지의 숫자를 반복하여 각 값을 산출합니다. 이 생성기를 사용하려면 "for" 루프를 사용하여 반복할 수 있습니다.

for number in generate_numbers():
    print(number)

이 코드는 0에서 4까지의 숫자를 인쇄합니다.

생성기의 장점

발전기는 기존 발전기에 비해 여러 가지 장점을 제공합니다. iterables:

  • 메모리 효율성: Generator는 iterable과 달리 모든 값을 메모리에 동시에 저장하지 않습니다. 따라서 큰 시퀀스나 크기를 미리 알 수 없는 시퀀스를 생성하는 데 이상적입니다.
  • 지연 평가: 생성기는 필요할 때만 값을 생성하므로 계산 시간과 리소스가 절약됩니다.
  • 유연성: 생성기를 다시 초기화할 필요 없이 여러 번 재사용할 수 있으므로 파이프라인 및 기타 생성에 편리합니다. 복잡한 연산.

결론

"yield"는 Python의 강력한 키워드로, 요청에 따라 값을 생성하는 고유한 반복 가능 유형인 생성기를 생성할 수 있습니다. 생성기는 메모리 효율성, 지연 평가, 유연성과 같은 이점을 제공하므로 다양한 프로그래밍 시나리오에서 귀중한 도구가 됩니다.

위 내용은 Python의 `yield` 키워드는 무엇을 하며 생성기는 어떻게 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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