Recherche de site Web

Instruction de retour en Python


L'instruction return en Python est utilisée pour renvoyer des valeurs depuis la fonction. Nous ne pouvons utiliser l'instruction return que dans une fonction. Elle ne peut pas être utilisée en dehors d'une fonction Python.

Fonction Python sans instruction de retour

Chaque fonction en Python retourne quelque chose. Si la fonction n'a pas d'instruction de retour, alors elle retourne None.

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


output = print_something('Hi')

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

Sortie :

Fonction Python sans instruction de retour

Exemple de déclaration de retour en Python

Nous pouvons effectuer une opération dans une fonction et renvoyer le résultat à l'appelant en utilisant l'instruction return.

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


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

Sortie :

Exemple de retour en Python

Instruction return en Python avec expression

Nous pouvons également avoir des expressions dans l'instruction de retour. Dans ce cas, l'expression est évaluée et le résultat est retourné.

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


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

Sortie :

Instruction de retour Python avec expression

Python renvoie un booléen

Examinons un exemple où nous allons retourner la valeur booléenne de l'argument d'une fonction. Nous allons utiliser la fonction bool() pour obtenir la valeur booléenne de l'objet.

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

Sortie :

Python Renvoie un Booléen

Python renvoie une chaîne

Regardons un exemple où notre fonction renverra la représentation sous forme de chaîne de l'argument. Nous pouvons utiliser la fonction str() pour obtenir la représentation sous forme de chaîne d'un objet.

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)}')

Sortie :

Chaîne de retour Python

Python retourne un tuple

Parfois, nous voulons convertir un certain nombre de variables en un tuple. Voyons comment écrire une fonction pour retourner un tuple à partir d'un nombre variable d'arguments.

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}')

Sortie :

Fonction Python retourne un tuple

Lecture complémentaire: Python *args et **kwargs

Fonction Python retournant une autre fonction

Nous pouvons également retourner une fonction depuis l'instruction de retour. Cela est similaire au Currying, qui est la technique de traduction de l'évaluation d'une fonction prenant plusieurs arguments en l'évaluation d'une séquence de fonctions, chacune avec un seul argument.

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}')

Sortie :

Fonction de retour en Python

Fonction Python retournant une fonction externe

Nous pouvons également retourner une fonction qui est définie en dehors de la fonction avec l'instruction de retour.

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}')

Sortie :

Fonction Python Retourner Fonction Extérieure

Python renvoie plusieurs valeurs

Si vous souhaitez retourner plusieurs valeurs d'une fonction, vous pouvez retourner un tuple, une liste ou un objet dictionnaire selon vos besoins. Cependant, si vous devez retourner un grand nombre de valeurs, alors utiliser une séquence est une opération trop gourmande en ressources. Nous pouvons utiliser yield, dans ce cas, pour retourner plusieurs valeurs une par une.

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


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

print(a)
showing the values
for i in a:
    print(i)

Sortie :

Python Retour vs Yield

Résumé

L'instruction return en Python est utilisée pour renvoyer la sortie d'une fonction. Nous avons appris que nous pouvons également renvoyer une fonction depuis une autre fonction. De plus, les expressions sont évaluées et ensuite le résultat est renvoyé de la fonction.

Vous pouvez consulter le script Python complet et d'autres exemples de Python sur notre dépôt GitHub.