LoslegenKostenlos starten

Gib den Rückgabetyp aus

Du führst gerade ein Debugging für ein Paket durch, an dem du zusammen mit Freundinnen und Freunden arbeitest. Bei den zurückgegebenen Daten einer deiner Funktionen passiert etwas Merkwürdiges, aber du weißt nicht einmal, welche Funktion die Ursache dafür ist. Du weißt, dass sich manchmal Bugs einschleichen, wenn du von einer Funktion einen bestimmten Rückgabewert erwartest, sie aber etwas anderes zurückgibt. Wenn du zum Beispiel ein numpy-Array erwartest, du aber stattdessen eine Liste zurückbekommst, kann das zu unerwartetem Verhalten führen. Um sicherzugehen, dass das nicht das Problem ist, schreibst du einen Decorator print_return_type(), der bei jedem Aufruf einer dekorierten Funktion den Typ der zurückgegebenen Variable ausgibt.

Diese Übung ist Teil des Kurses

<Kurs>Funktionen in Python schreiben</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle eine verschachtelte Funktion wrapper(), die zur neuen dekorierten Funktion wird.
  • Rufe die dekorierte Funktion auf.
  • Gib die neue dekorierte Funktion zurück.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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}))
Code bearbeiten und ausführen