CommencerCommencer gratuitement

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

Afficher le cours

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}))
Modifier et exécuter le code