Declaração de retorno do Python

A declaração de retorno em Python é usada para retornar valores de uma função. Podemos usar a declaração de retorno apenas em uma função. Ela não pode ser usada fora de uma função Python.

Função Python sem declaração de retorno

Toda função em Python retorna algo. Se a função não tem nenhuma declaração de retorno, então ela retorna None.

def print_something(s):
    print('Printing::', s)


output = print_something('Hi')

print(f'A function without return statement returns {output}')

Saída:

Python Function Without Return Statement

Exemplo de Declaração de Retorno Python

Podemos realizar alguma operação em uma função e retornar o resultado para o chamador usando a declaração de retorno.

def add(x, y):
    result = x + y
    return result


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

Saída:

Python Return Example

Declaração de retorno Python com expressão

Também podemos ter expressões na declaração de retorno. Nesse caso, a expressão é avaliada e o resultado é retornado.

def add(x, y):
    return x + y


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

Saída:

Python Return Statement With Expression

Python retorna booleano

Vamos olhar um exemplo onde iremos retornar o valor booleano do argumento de uma função. Vamos usar a função bool() para obter o valor booleano do objeto.

def bool_value(x):
    return bool(x)


print(f'Boolean value returned by bool_value(False) is {bool_value(False)}')
print(f'Boolean value returned by bool_value(True) is {bool_value(True)}')
print(f'Boolean value returned by bool_value("Python") is {bool_value("Python")}')

Output:

Python Return Boolean

Python retorna string

Vamos olhar um exemplo onde nossa função irá retornar a representação de string do argumento. Podemos usar a função str() para obter a representação de string de um objeto.

def str_value(s):
    return str(s)


print(f'String value returned by str_value(False) is {str_value(False)}')
print(f'String value returned by str_value(True) is {str_value(True)}')
print(f'String value returned by str_value(10) is {str_value(10)}')

Output:

Python Return String

Python retorna tupla

Às vezes queremos converter uma série de variáveis em uma tupla. Vamos ver como escrever uma função para retornar uma tupla a partir de um número variável de argumentos.

def create_tuple(*args):
    my_list = []
    for arg in args:
        my_list.append(arg * 10)
    return tuple(my_list)


t = create_tuple(1, 2, 3)
print(f'Tuple returned by create_tuple(1,2,3) is {t}')

Output:

Python Function Return Tuple

Leitura Adicional: Python *args e **kwargs

Função Python retornando outra função

Também podemos retornar uma função a partir da declaração return. Isso é semelhante ao Currying, que é a técnica de traduzir a avaliação de uma função que recebe múltiplos argumentos em avaliar uma sequência de funções, cada uma com um único argumento.

def get_cuboid_volume(h):
    def volume(l, b):
        return l * b * h

    return volume


volume_height_10 = get_cuboid_volume(10)
cuboid_volume = volume_height_10(5, 4)
print(f'Cuboid(5, 4, 10) volume is {cuboid_volume}')

cuboid_volume = volume_height_10(2, 4)
print(f'Cuboid(2, 4, 10) volume is {cuboid_volume}')

Saída:

Python Return Function

Função Python retornando função externa

Também podemos retornar uma função que é definida fora da função com a declaração return.

def outer(x):
    return x * 10


def my_func():
    return outer


output_function = my_func()
print(type(output_function))

output = output_function(5)
print(f'Output is {output}')

Saída:

Python Function Return Outer Function

Python retornando múltiplos valores

Se você deseja retornar vários valores de uma função, pode retornar um objeto de tupla, lista ou dicionário conforme sua necessidade. No entanto, se você tem que retornar um grande número de valores, então usar sequência é uma operação que consome muitos recursos. Podemos usar yield, neste caso, para retornar vários valores um a um.

def multiply_by_five(*args):
    for arg in args:
        yield arg * 5


a = multiply_by_five(4, 5, 6, 8)

print(a)
# mostrando os valores
for i in a:
    print(i)

Saída:

Python Return vs Yield

Resumo

A declaração de retorno do python é usada para retornar a saída de uma função. Aprendemos que também podemos retornar uma função de outra função. Além disso, as expressões são avaliadas e então o resultado é retornado da função.

Você pode conferir o script completo em python e mais exemplos de Python em nosso Repositório GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-return-statement