Yield é uma palavra-chave integrada do Python que retorna o (s) valor (es) de uma função. A execução da função não é encerrada. Em vez disso, ele retorna o valor para o chamador e mantém o estado de execução da função. A execução da função é retomada a partir da última declaração de rendimento. O rendimento nos permite produzir uma sequência de valores em vez de um valor. É usado dentro de um corpo de função. A função que contém uma declaração de rendimento é conhecida como função geradora.
Existem várias vantagens para produzir palavras-chave. Por exemplo, ele controla a alocação de memória e salva o estado da variável local. No entanto, aumenta a complexidade do código.
Este artigo explica o uso da palavra-chave de rendimento com exemplos.
Sintaxe de rendimento
A sintaxe de rendimento é simples e direta. O rendimento é iniciado com a palavra-chave yield e a sintaxe a seguir:
valor de rendimentoExemplos
Agora, vamos ver exemplos para entender o uso e o funcionamento das declarações de rendimento. Tradicionalmente, a palavra-chave return termina a execução do programa e retorna um valor no final, enquanto yield retorna a sequência de valores. Ele não armazena o valor na memória e retorna o valor para o chamador em tempo de execução. No exemplo abaixo, uma função geradora é definida para determinar o ano bissexto. Um salto é aquele ano em que divisível por quatro retorna zero como resto. A palavra-chave yield retorna o valor do ano bissexto para o chamador. Como obterá o valor do ano bissexto, ele pausará a execução do programa, retornará o valor e, em seguida, retomará a execução de onde foi interrompido.
#declarar um gerador para determinar o ano bissextodef leapfunc (minha_lista):
para i em minha_lista:
if (i% 4 == 0):
#using yield
rendimento eu
#declarando a lista de anos
year_list = [2010,2011,2012,2016,2020,2024]
print ("Imprimindo os valores do ano bissexto")
para x em leapfunc (year_list):
imprimir (x)
Resultado
A saída mostra a série de anos bissextos.
Vamos ver outro exemplo em que a função geradora produz vários números e strings.
#declarar uma função geradoradef myfunc ():
rendimento "Mark"
rendimento "John"
rendimento "Taylor"
rendimento "Ivan"
rendimento 10
rendimento 20
rendimento 30
rendimento 40
rendimento 50
#calling e iteração por meio da função do gerador
para i em myfunc ():
#printing values
imprimir (i)
Resultado
Vamos implementar uma função geradora para calcular e imprimir o valor do cubo da sequência de números. Estamos gerando os valores do cubo de 1 a 30.
#declarar uma função geradora para calcular o valor do cubodef calcube ():
val = 1
#o loop infinito while
enquanto verdadeiro:
#calcumating cube
rendimento val * val * val
#incrementando o valor em 1
val = val + 1
print ("Os valores do cubo são:")
#calling a função do gerador
para i em calcube ():
se eu> 30:
pausa
imprimir (i)
Resultado
A saída mostra o valor do cubo menor que 30.
Conclusão
Yield é uma palavra-chave embutida do Python que não termina a execução do programa e gera uma série de valores. Em comparação com a palavra-chave return, a palavra-chave yield produz vários valores e retorna ao chamador. Este artigo explica o rendimento do Python com exemplos.