Afficher le type de retour
Vous procédez au débogage d'un package sur lequel vous avez travaillé avec vos collègues. Il se produit un problème avec les données renvoyées par l'une de vos fonctions, mais vous n'êtes pas certain de laquelle il s'agit. Vous savez que parfois des erreurs peuvent se glisser dans votre code lorsque vous vous attendez à ce qu'une fonction renvoie une chose, et qu'elle en renvoie une autre. Par exemple, si vous vous attendez à ce qu'une fonction renvoie un tableau numpy, mais qu'elle renvoie une liste, vous pouvez obtenir un comportement inattendu. Pour vous assurer que ce n'est pas la cause du problème, vous décidez d'écrire un décorateur, print_return_type(), qui affichera le type de la variable renvoyée par chaque appel de toute fonction qu'il décore.
Cet exercice fait partie du cours
Écrire des fonctions en Python
Instructions
- Créez une fonction imbriquée,
wrapper(), qui deviendra la nouvelle fonction décorée. - Appelez la fonction en cours de décoration.
- Renvoyez la nouvelle fonction décorée.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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}))