8.1 L'opérateur return
En Python, l'opérateur return
joue un rôle central dans les fonctions,
car il permet à une fonction de retourner sa valeur. Comprendre son utilisation
est essentiel pour un développement logiciel efficace.
L’opérateur return
met fin à l’exécution d’une fonction et « retourne »
le résultat au code qui l’a appelée. Si une fonction doit générer un résultat qui
sera utilisé ultérieurement, on utilise return
.
Retourner une valeur
Les fonctions peuvent retourner n'importe quel type de donnée, y compris des nombres,
des chaînes de caractères, des objets, et même d'autres fonctions ou None
. Exemple :
def sum(a, b):
return a + b
result = sum(5, 3)
print(result) # Affiche 8
Le résultat de l'addition a + b
peut être assigné à une variable result
.
Retourner plusieurs valeurs
Python permet de retourner plusieurs valeurs depuis une fonction en utilisant des tuples :
def get_user():
name = "Ivan"
age = 25
return name, age
user_name, user_age = get_user()
print(user_name, user_age) # Affiche Ivan 25
Utiliser return
pour terminer une fonction
L'opérateur return
peut également être utilisé pour terminer immédiatement
une fonction, y compris les boucles ou les blocs conditionnels à l'intérieur de la fonction :
def check_password(pswd):
if len(pswd) < 8:
return "Mot de passe trop court"
return "Mot de passe accepté"
return
sans valeur
Si return
est utilisé sans valeur ou est omis, la fonction retourne
None
:
def print_message(text):
print(text)
return
result = print_message("Salut")
print(result) # Affiche None
L'opérateur return
est un outil puissant en Python qui offre une grande
flexibilité dans la gestion du flux d'exécution du programme. Il permet aux fonctions
non seulement de retourner des valeurs pour une utilisation ultérieure, mais aussi de
contrôler la logique d'exécution, rendant le code plus clair et plus facile à comprendre.
8.2 L'opérateur pass
En Python, il existe un opérateur spécial — pass
, qui ne fait rien.
L'opérateur pass
est utilisé comme un « placeholder » dans les blocs de
code où un contenu est requis syntaxiquement, mais pas encore défini (il faut du code,
mais on n'a pas encore décidé quoi mettre).
Cela est particulièrement utile lorsque vous travaillez sur un grand projet et que vous
souhaitez structurer le programme sans qu'il effectue encore des opérations. Voici
quelques exemples d'utilisation de pass
.
Dans les définitions de fonctions :
def my_function():
pass
Ici, pass
est utilisé pour définir une fonction qui n’a pas encore
d’implémentation.
Dans les boucles et les conditions :
for item in my_list:
pass
Si vous devez créer une boucle, mais n’avez pas besoin d’exécuter une action dans son corps.
Dans les classes :
Définir une classe sans méthodes ni attributs pour réserver le nom et la structure de la classe à une utilisation future.
L'opérateur pass
est souvent utilisé lors du processus de développement
et de test, lorsque la structure du programme est déjà claire, mais les détails de
l'implémentation de certains composants ne sont pas encore définis. Cela permet au
programmeur d’organiser le code et d’ajouter progressivement des fonctionnalités sans
compromettre le fonctionnement global de l’application.
8.3 Retourner une fonction
En Python, la possibilité pour une fonction de retourner une autre fonction est un outil puissant, rendu possible par le support des closures* et des fonctions de première classe. Cette caractéristique du langage permet de développer des programmes flexibles et expressifs en utilisant des concepts tels que les décorateurs* et les fabriques de fonctions*.
En Python, les fonctions sont des objets, ce qui signifie qu'elles peuvent être assignées à des variables, passées à d'autres fonctions en tant qu'arguments, ou même retournées comme résultats. Cette capacité rend les fonctions extrêmement puissantes pour créer du code modulaire et facilement testable.
Prenons un exemple et créons une fonction qui génère des fonctions pour élever des nombres à une puissance donnée. Une fonction élèvera au carré, une autre au cube, etc. Voici à quoi cela pourrait ressembler :
def power(exponent):
def inner(base):
return base ** exponent
return inner
square = power(2)
print(square(3)) # Affiche 9
cube = power(3)
print(cube(3)) # Affiche 27
Notez que la fonction power
ne fait pas appel à
la fonction inner
. À la place, la fonction
inner
est définie à l’intérieur de
power
avec un paramètre base
.
Mais la fonction inner
utilise également le paramètre
exponent
dans son propre corps.
GO TO FULL VERSION