Il statement di ritorno di Python viene utilizzato per restituire valori dalla funzione. Possiamo utilizzare il statement di ritorno solo all’interno di una funzione Python.
Funzione Python senza statement di ritorno
Ogni funzione in Python restituisce qualcosa. Se la funzione non ha alcun statement di ritorno, restituisce None
.
def print_something(s):
print('Printing::', s)
output = print_something('Hi')
print(f'A function without return statement returns {output}')
Output:

Esempio di statement di ritorno in Python
Possiamo eseguire qualche operazione in una funzione e restituire il risultato al chiamante utilizzando lo statement di ritorno.
def add(x, y):
result = x + y
return result
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
Output:

Statement di ritorno di Python con espressione
Possiamo avere anche espressioni nello statement di ritorno. In tal caso, l’espressione viene valutata e il risultato viene restituito.
def add(x, y):
return x + y
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
Output:

Ritorno booleano Python
Guardiamo un esempio in cui restituiremo il valore booleano dell’argomento di una funzione. Utilizzeremo la funzione bool() per ottenere il valore booleano dell’oggetto.
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:

Ritorno stringa Python
Guardiamo un esempio in cui la nostra funzione restituirà la rappresentazione stringa dell’argomento. Possiamo utilizzare la funzione str() per ottenere la rappresentazione stringa di un oggetto.
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:

Ritorno tupla Python
A volte vogliamo convertire un numero di variabili in una tupla. Vediamo come scrivere una funzione per restituire una tupla da un numero variabile di argomenti.
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:

Approfondimenti: Python *args e **kwargs
Funzione Python che restituisce un’altra funzione
Possiamo restituire una funzione anche dalla dichiarazione di ritorno. Questo è simile al Currying, che è la tecnica di tradurre la valutazione di una funzione che accetta argomenti multipli nella valutazione di una sequenza di funzioni, ciascuna con un singolo argomento.
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}')
Output:

Funzione Python che restituisce una funzione esterna
Possiamo anche restituire una funzione che è definita al di fuori della funzione con la dichiarazione di ritorno.
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}')
Output:

Python restituisce valori multipli
Se si desidera restituire più valori da una funzione, è possibile restituire una tupla, una lista o un oggetto dizionario a seconda delle proprie esigenze. Tuttavia, se si devono restituire un numero elevato di valori, l’utilizzo di una sequenza rappresenta un’operazione che richiede troppa risorse. In questo caso, è possibile utilizzare “yield” per restituire i valori uno per volta.
def multiply_by_five(*args):
for arg in args:
yield arg * 5
a = multiply_by_five(4, 5, 6, 8)
print(a)
# mostrare i valori
for i in a:
print(i)
Output:

Sommario
L’istruzione di ritorno di Python viene utilizzata per restituire l’output da una funzione. Abbiamo appreso che è possibile restituire anche una funzione da un’altra funzione. Inoltre, le espressioni vengono valutate e poi il risultato viene restituito dalla funzione.
È possibile controllare lo script completo di Python e altri esempi di Python dal nostro repository di GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-return-statement