Declaração de retorno do Python

A instrução return do python é usada para retornar valores da função. Podemos usar a instrução return apenas numa função. Ela não pode ser usada fora de uma função Python.

Função Python sem instrução return

Toda função em Python retorna algo. Se a função não tiver nenhuma instrução return, 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 Instrução Return em Python

Podemos realizar alguma operação numa função e retornar o resultado ao chamador usando a instrução return.

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

Instrução return do Python com expressão

Também podemos ter expressões na instrução return. 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 retornar booleano

Vamos ver 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")}')

Saída:

Python Return Boolean

Python retornar string

Vamos ver um exemplo onde nossa função irá retornar a representação em string do argumento. Podemos usar a função str() para obter a representação em 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)}')

Saída:

Python Return String

Python retornar tupla

Às vezes, queremos converter um número 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}')

Saída:

Python Function Return Tuple

Leitura Adicional: Python *args e **kwargs

Função Python que retorna outra função

Também podemos retornar uma função a partir da instrução de retorno. 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 instrução de retorno.

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 múltiplos valores de uma função, pode retornar um objeto do tipo tupla, lista ou dicionário conforme sua necessidade. No entanto, se você precisa retornar um grande número de valores, então o uso de sequência consome muitos recursos. Neste caso, podemos usar yield, para retornar múltiplos valores um por 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)

Resultado:

Python Return vs Yield

Resumo

O comando return em python é usado 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 o resultado é então retornado pela função.

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

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