우리가 파이썬에서 함수를 호출 할 때, 함수는 일반적으로 반환, 예외 또는 끝에 도달 할 때까지 작동하기 시작합니다. 그 후 발신자에게 컨트롤을 다시 반환합니다. 그 기능을 다시 호출 할 때마다 프로세스는 스크래치 ! 에서 시작됩니다.
당신은 사람에게 도로에서 빨간 차를 추적 해달라고 요청했다고 말합니다. 그 사람은 빨간 차를 발견했는지 아닌지 묻는 질문을 계속할 것입니다. 사람이‘예’에 대답하면 빨간 차가 발견 된 횟수가 증가 할 것입니다.
파이썬 에서이 작업을 수행 할 수있는 방법을 봅시다 :
프로그램을 실행하면 무엇을 알 수 있습니까? ‘예’답변의 횟수는 항상 1으로 제한되고 있으며,‘아니요’에 대답 할 때 이전‘예’에 대답하든 0이 0을 얻습니다.
여기 파이썬의 수율 키워드가 작동하는 곳이 있습니다. 수율은 우리가 일시적으로 발신자에게 손으로 제어하는 수단이며, 제어가 넘겨진 지점에서 계속 될 것으로 예상됩니다.
.
위의 예에 대한 해결책을 제시하기 전에 수율이 어떻게 작동하는지 더 잘 설명하기 위해 매우 간단한 예를 보여 드리겠습니다.
우리는 다음과 같은 간단한 파이썬 스크립트를 가지고 있다고 말합니다
스크립트를 실행하면 다음 출력이 나타납니다.
이제, 우리가 대신 수율을 사용하면 다음과 같이 :
출력은 다음과 같습니다
당신이 볼 수 있듯이, 우리는 각 호출에 대해 값이 값을 산출하는 지점에서 계속되는 값의 시리즈
를 만들 수있었습니다. 이 유형의 함수를 생성기라고합니다. 이러한 함수는 다음 () 메소드에 대한 각 호출과 마찬가지로 생성기 반복기를 생성합니다.
우리가 주요 예 (빨간 자동차)로 돌아 오면 필요한 작업을 수행하기 위해 다음과 같이 작성할 수 있습니다.
따라서, 우리가 볼 수 있듯이, 수율은 기능 (발전기)이 종료 된 마지막 지점에서 실행을 재개하는 데 관심이 있고 다른 통화 사이의 로컬 변수의 값을 유지하는 데 관심이있는 경우 수율이 중요하다고 간주됩니다. - 함수를 종료 할 때 그러한 값이 파괴되는 일반 함수와 달리.
그러나 다른 수율의 사용이 있습니다. 예를 들어, 시퀀스 (예 : Excel 시트의 행)를 반환하는 함수가있는 경우 수율을 사용할 수 있으며 한 번에 메모리에 각 값이없는 시퀀스를 반복해야합니다. 즉, 메모리를 저장합니다.
수율은 반복과 함께 작업 할 때도 기능을 전달하기 어려운 큰 목록이있는 경우에도 사용할 수 있습니다. 예를 들어, Itertools 모듈 사용 수율의 순열 및 조합에 대한 Python의 내장 기능.
Python의 수율 키워드에 대한 자주 묻는 질문 (FAQ)
Python의 수율과 반환 키워드의 차이점은 무엇입니까?
Python의 수율 및 반환 키워드는 기능에 사용되지만 다른 목적을 수행합니다. 반환 키워드는 함수를 원할 때 값을 생성 한 다음 종료 할 때 사용됩니다. 함수가 값을 반환하면 실행이 완료되고 제어가 발신자에게 다시 전달됩니다. 반면, 수율 키워드는 반환 문과 같은 함수에 사용되지만 값을 생성하고 함수의 실행을 중단시킵니다. 이 기능은 나중에 중단 된 곳에서 재개 될 수있어 시간이 지남에 따라 일련의 값을 생성하고 목록처럼 다시 보내는 대신 일련의 값을 생성 할 수 있습니다. Python에서의 작업? Python의 수율 키워드는 반복기를 만들기 위해 루프가있는 함수에 사용됩니다. 함수가 호출되면 반복자를 반환하지만 즉시 실행을 시작하지 않습니다. 반복자의 다음 () 메소드가 호출되면 함수가 실행되기 시작합니다. 수율 키워드가 발생하면 전달 된 인수를 수율로 반환하고 실행을 일시 중지합니다. 기능은 다음 ()을 다시 호출하여 중단 된 곳에서 재개 될 수 있으며, 기능은 시간이 지남에 따라 일련의 값을 생성하여 생성기로 작동합니다.
수율 키워드를 사용하는 예를 제공 할 수 있습니까? 파이썬? 물론, 파이썬에서 수율 키워드를 사용하는 간단한 예는 다음과 같습니다. simple_generator ()의 값에 대한 🎜>
> print (value) 이 예에서 Simple_Generator는 수율 키워드를 사용하기 때문에 발전기 기능입니다. Simple_Generator ()에 의해 반환 된 발전기 객체를 반복 할 때, 1, 2, 3, 3을 생성하고 각 수익률 사이의 실행을 일시 중지합니다.
Python에서 수율 키워드를 사용하면 어떤 이점이 있습니까?
Python의 수율 키워드를 사용하면 시간이 지남에 따라 결과 시퀀스를 생성 할 수있는 기능을 한 번에 계산하고 예를 들어 목록에 반환하는 기능을 작성할 수 있습니다. 결과 세트가 크고 메모리를 저장할 때 특히 유용 할 수 있습니다. 또한 고유 한 반복 가능한 객체를 만들어 반복 할 수있는 루프, 이해력 및 기타 기능에 Python 's와 함께 사용할 수 있습니다.는 함수에 Python의 수율과 반환 문이 모두 포함될 수 있습니까? 예, 파이썬의 함수는 수율과 반환 문을 모두 포함 할 수 있습니다. 그러나 리턴 명령문이 실행되면 함수의 실행이 종료되고 제어가 발신자에게 전달됩니다. 따라서 수율 명세서 전에 반환 명령문이 실행되면 수익률 명세서에 도달하지 못합니다. 반대로, 수율 명세서가 먼저 실행되면, 함수가 일시 중지되고 제어가 발신자에게 다시 전달되지만 나중에 함수를 재개 할 수 있으며,이 시점에서 반환 문을 실행할 수 있습니다. Python의 재귀 함수에서 수율 키워드를 사용할 수 있습니까? 예, Python의 재귀 함수에서 수율 키워드를 사용할 수 있습니다. 그러나 재귀 호출을 반복하고 각 값을 얻는 것을 기억해야합니다. 그렇지 않으면 기대하는 값 대신 생성기 객체를 얻을 수 있습니다.
생성기 기능과 정상 함수의 차이점은 무엇입니까? 파이썬에서 발전기 함수와 Python의 정상 함수의 주요 차이점은 발전기 기능이 수율 키워드를 사용하고 일반 함수가 리턴 키워드를 사용한다는 것입니다. 생성기 함수가 호출되면 함수의 실행을 시작하지 않고 발전기 개체를 반환합니다. 다음 () 메소드가 처음으로 호출되면 기능이 수율 키워드에 도달 할 때까지 실행되기 시작하여 값이 생성됩니다. 그런 다음이 함수는 실행을 일시 중지하고 제어는 발신자에게 다시 전달됩니다. 반면에, 정상 함수가 호출되면 즉시 실행을 시작하고 완료로 실행되어 값을 반환합니다.
파이썬의 단일 함수에서 여러 수율 문을 사용할 수 있습니까? . 예, 파이썬에서 단일 함수에서 여러 수율 문을 사용할 수 있습니다. 함수가 호출되면 수율 명세서가 발생할 때마다 값을 산출하여 실행을 일시 중지하고 통제를 발신자에게 전달합니다. 다음에 함수의 다음 () 메소드가 호출되면 다음 수익률 명령문이 발생할 때까지 실행을 시작하고 실행할 때 실행을 재개합니다. Python? Python의 발전기 함수에 더 이상 수율 값이 없으면 StopErationation 예외가 발생합니다. 시도/예외 블록을 사용 하여이 예외를 포착 할 수 있습니다. 예는 다음과 같습니다.
def simple_generator () : 수율 1 수율 2 수율 3
try : print (next (gen)) stopiteration을 제외하고 : break
이 예에서는 중지 예외를 포착하고 루프가 없을 때 루프에서 벗어납니다. 더 많은 값을 산출 할 수 있습니다 Python의 Lambda 함수에서 수율 키워드를 사용할 수 있습니까? 아니요, Python의 Lambda 함수에서 수율 키워드를 사용할 수 없습니다. Lambda 함수는 단일 표현식으로 제한되며 수율 키워드는 문장 컨텍스트를 소개하기 때문입니다. 생성기 함수를 만들어야하는 경우 DEF 문을 사용하여 정상 함수를 정의해야합니다.
위 내용은 빠른 팁 : 파이썬의 수율 키워드 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!