Afficher le type de valeur retournée
Vous déboguez un progiciel sur lequel vous travaillez avec des collègues. Quelque chose d'étrange se passe avec les données retournées par l'une de vos fonctions, mais vous ne savez même pas laquelle pose problème. Vous savez que des bogues peuvent se glisser lorsque vous vous attendez à ce qu'une fonction retourne un certain type, mais qu'elle en retourne un autre. Par exemple, si vous vous attendez à ce qu'une fonction retourne un tableau numpy, mais qu'elle retourne plutôt une liste, le comportement peut être inattendu. Pour vérifier que ce n'est pas la source du problème, vous décidez d'écrire un décorateur, print_return_type(), qui affichera le type de la variable retournée à chaque appel de toute fonction qu'il décore.
Cette activité fait partie du cours
Écrire des fonctions en Python
Instructions de l’exercice
- Créez une fonction imbriquée,
wrapper(), qui deviendra la nouvelle fonction décorée. - Appelez la fonction décorée.
- Retournez la nouvelle fonction décorée.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
def print_return_type(func):
# Define wrapper(), the decorated function
____ ____(____, ____):
# Call the function being decorated
result = ____(____, ____)
print('{}() returned type {}'.format(
func.__name__, type(result)
))
return result
# Return the decorated function
return ____
@print_return_type
def foo(value):
return value
print(foo(42))
print(foo([1, 2, 3]))
print(foo({'a': 42}))