CommencezCommencez gratuitement

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

Voir le cours

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