Kom igångKom igång gratis

Skriv ut returtypen

Du felsöker ett paket som du och dina kollegor har arbetat med tillsammans. Något konstigt händer med datan som returneras från en av dina funktioner, men du vet inte ens vilken funktion som orsakar problemet. Ibland kan buggar smyga sig in i koden när du förväntar dig att en funktion ska returnera en sak, men den returnerar något annat. Om du till exempel förväntar dig att en funktion ska returnera en numpy-array men den returnerar en lista, kan oväntat beteende uppstå. För att utesluta detta som orsak bestämmer du dig för att skriva en dekoratör, print_return_type(), som skriver ut typen av variabeln som returneras vid varje anrop av den funktion den dekorerar.

Den här övningen är en del av kursen

Att skriva funktioner i Python

Visa kurs

Övningsinstruktioner

  • Skapa en nästlad funktion, wrapper(), som blir den nya dekorerade funktionen.
  • Anropa funktionen som dekoreras.
  • Returnera den nya dekorerade funktionen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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}))
Redigera och kör kod