Pitão

Python Yield vs. Retornar

Python Yield vs. Retornar

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úmeros

myList = [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úmeros

myList = [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.

Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...
Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...