Python é a linguagem de programação de propósito geral amplamente usada nos últimos tempos. O rendimento é uma palavra-chave Python embutida que é usada para criar as funções geradoras. Sua função gera uma série de resultados. Ele pausa a execução do programa, envia o valor do resultado de volta ao chamador e retoma a execução a partir do último rendimento. Além disso, a função de rendimento envia a série de resultados gerada na forma de um objeto gerador. Por outro lado, o retorno também é uma palavra-chave embutida no Python que termina a função e envia o valor de volta ao chamador.
Este artigo descreve as diferenças entre o rendimento e os retornos com exemplos.
Diferenças entre rendimento e retorno
Para começar, existem muitas diferenças importantes entre o rendimento e o retorno. Vamos primeiro discutir o que são esses.
Retornar | Produção |
---|---|
A instrução de retorno retorna apenas um único valor para o chamador. | A declaração de rendimento pode retornar uma série de resultados ao chamador na forma de um objeto gerador. |
O retorno sai da função e, no caso de um loop, ele descarta o loop. É a última instrução a ser colocada dentro da função. | Não elimina as variáveis locais da função. Ele suspende a execução e envia o valor de volta ao chamador e continua a execução do programa a partir da última declaração de rendimento. |
Logicamente, uma função deve ter apenas uma instrução de retorno. | Pode haver mais de uma instrução de rendimento dentro da função. |
A instrução de retorno só pode ser executada uma vez. | A declaração de rendimento pode ser executada várias vezes. |
A instrução de retorno é colocada dentro de uma função Python regular. | A declaração de rendimento converte uma função regular em uma função geradora. |
Exemplo 1: Retorno vs. Produção
Agora, vamos ver a diferença entre as declarações de retorno e rendimento por meio de exemplos. No programa de exemplo fornecido abaixo, usamos várias instruções de retorno. Você pode observar que a execução do programa terminará após a primeira instrução de retorno, e o resto do código não será executado.
# um programa para mostrar o funcionamento da instrução return# definindo uma variável numérica
num1 = 10
# definindo uma variável numérica
num2 = 20
#criar uma função para realizar operações aritméticas
def mathOP ():
#calculando o valor da soma
retornar num1 + num2
#calculando a diferença
retornar num1-num2
#calculando o valor de multiplicação
retornar num1 * num2
#calculando o valor da divisão
retornar num1 / num2
#calling a função
imprimir (mathOP ())
Resultado
Na saída, pode ser visto que a função só retorna o primeiro valor, e o programa é encerrado.
Para realizar uma tarefa semelhante com várias instruções de retorno, precisamos criar quatro funções diferentes para cada tipo de operação aritmética.
# um programa para mostrar o funcionamento da instrução return# definindo uma variável numérica
num1 = 10
# definindo uma variável numérica
num2 = 20
#criar uma função para realizar operações aritméticas
def sumOP ():
#calculando o valor da soma
retornar num1 + num2
def subtractOP ():
#calculando a diferença
retornar num1-num2
def multiplicationOP ():
#calculando o valor de multiplicação
retornar num1 * num2
def divisionOP ():
#calculando o valor da divisão
retornar num1 / num2
#calling a função sum
print ("O valor da soma é:", sumOP ())
#calling a função de subtração
print ("O valor da diferença é:", subtractOP ())
#calling a função de multiplicação
print ("O valor de multiplicação é:", multiplicaçãoOP ())
#chamando a função de divisão
print ("O valor da divisão é:", divisionOP ())
Resultado
Podemos realizar essas múltiplas operações aritméticas dentro de uma única função geradora com múltiplas declarações de rendimento.
# um programa para mostrar o funcionamento da declaração de rendimento# definindo uma variável numérica
num1 = 10
# definindo uma variável numérica
num2 = 20
#criar uma função para realizar operações aritméticas
def mathOP ():
#calculando o valor da soma
rendimento num1 + num2
#calculando a diferença
rendimento num1-num2
#calculando o valor de multiplicação
rendimento num1 * num2
#calculando o valor da divisão
rendimento num1 / num2
#calling a função
print ("Imprimindo os valores:")
# using for loop para acessar os valores do objeto gerador
para i em mathOP ():
imprimir (i)
Resultado
Exemplo 2: Retorno vs. Produção
Vamos ver outro exemplo de declarações de retorno e rendimento. No exemplo dado, temos uma lista de números que é passada para a função mod () como um argumento. Estamos realizando a operação de módulo em cada número da lista e verificando quais são esses números quando divididos por 10 retornam zero como um valor restante.
Primeiro, vamos implementar este exemplo em nosso script Python com a instrução return.
# definindo uma lista de númerosmyList = [10,20,25,30,35,40,50]
# definindo uma função para realizar a operação de módulo
def mod (myList):
para i em myList:
#performing modulus operation
if (i% 10 == 0):
retorno eu
imprimir (mod (minhaLista))
Resultado
A instrução de retorno apenas retorna o primeiro número ao chamador e encerra a execução da função.
Agora, vamos implementar o mesmo exemplo em nosso script Python com a instrução de rendimento.
# definindo uma lista de númerosmyList = [10,20,25,30,35,40,50]
# definindo uma função para realizar a operação de módulo
def mod (myList):
para i em myList:
#performing modulus operation
if (i% 10 == 0):
#a declaração de rendimento
rendimento eu
para i no mod (myList):
imprimir (i)
Resultado
Conclusão
Em conclusão, o retorno e o rendimento são duas palavras-chave ou instruções Python integradas. A instrução return é usada para retornar o valor para o chamador de uma função e termina a execução do programa, enquanto a instrução yield produz um objeto gerador e pode retornar os vários valores para o chamador sem terminar a execução do programa. Este artigo lista todas as diferenças importantes entre declarações de retorno e rendimento com exemplos.