Esci da una funzione in Python

  1. Tipo restituito implicito in Python
  2. Tipo restituito esplicito in Python

Ogni programma ha un certo flusso di esecuzione. Un flusso non è altro che il modo in cui viene eseguito il programma. L’istruzione return viene utilizzata per uscire dalla funzione di Python, che può essere utilizzata in molti casi diversi all’interno del programma. Ma i due modi più comuni in cui usiamo questa affermazione sono di seguito.

  1. Quando vogliamo restituire un valore da una funzione dopo che è terminata o eseguita. E useremo il valore più avanti nel programma.
def add(a, b):
   return a+b

value = add(1,2)
print(value)

Produzione:

3

Qui, restituisce il valore calcolato da a+b e quindi memorizza quel valore che è 3, all’interno della variabile valore.

  1. Quando vogliamo interrompere l’esecuzione della funzione in un dato momento.
def add(a, b):
    
    if(a == 0):
        return
    elif(b == 0):
        return
    else:
        sum = a + b
        return sum

value = add(0,2)
print(value)

Produzione:

None

Qui, se i valori di a o b sono 0, tornerà direttamente senza calcolare la somma dei numeri. Se non sono 0, solo esso calcolerà e restituirà la sum.

Ora, se si implementa questa istruzione nel programma, a seconda di dove è stata aggiunta questa istruzione nel programma, l’esecuzione del programma cambierà. Vediamo come funziona.

Tipo restituito implicito in Python

Supponiamo di avere una funzione all’interno della quale abbiamo scritto usando un’istruzione if, quindi vediamo come si comporta il programma.

def solution():
    name = "john"
    
    if(name == "john"):
        print('My name ',name)

solution()

Produzione:

My name john

La funzione solution() non accetta argomenti. Al suo interno, abbiamo una variabile chiamata name e quindi controlliamo che il suo valore corrisponda alla stringa john usando l’istruzione if. Se corrisponde, stampiamo il valore della variabile nome e poi usciamo dalla funzione; altrimenti, se la stringa non corrisponde, usciremo semplicemente senza fare nulla.

Qui, potresti pensare che, poiché non c’è un’istruzione return scritta nel codice, non è presente alcuna istruzione return. Si noti che la dichiarazione di ritorno non è obbligatoria da scrivere. Ogni volta che esci da qualsiasi funzione Python, chiama return con il valore di None solo se non hai specificato l’istruzione return. Il valore None significa che la funzione ha completato la sua esecuzione e non restituisce nulla. Se hai specificato l’istruzione return senza alcun parametro, è anche uguale a return None. Se non specifichi alcun tipo di ritorno all’interno di una funzione, quella funzione chiamerà un’istruzione return. Si chiama tipo restituito implicito in Python.

Tipo restituito esplicito in Python

Ogni volta che aggiungi un’istruzione return esplicitamente da solo all’interno del codice, il tipo restituito è chiamato tipo restituito esplicito. Ci sono molti vantaggi nell’avere un tipo di ritorno esplicito, come puoi passare un valore calcolato da una funzione e memorizzarlo all’interno di una variabile per un uso successivo o interrompere l’esecuzione della funzione in base ad alcune condizioni con l’aiuto di un’istruzione return e così via. Vediamo un esempio del tipo esplicito in Python.

def Fibonacci(n):
    
    if n < 0:
        print("Fibo of negative num does not exist")
    elif n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

print(Fibonacci(0))

Produzione:

0

Questo è un programma per trovare i numeri di Fibonacci. Notare come il codice viene restituito con l’aiuto di un’esplicita istruzione return. Qui, la cosa principale da notare è che restituiremo direttamente un valore se il numero passato a questa funzione è 2 o minore di 2 e usciamo dalla funzione ignorando il codice scritto sotto. Eseguiremo il nostro codice principale (presente all’interno del blocco else) solo quando il valore passato a questa funzione sarà maggiore di 2.

Articolo correlato - Python Function

  • Argomenti opzionali in Python