LoslegenKostenlos loslegen

Gib den Rückgabetyp aus

Du debuggst gerade ein Paket, 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 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, aber 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

Funktionen in Python schreiben

Kurs anzeigen

Anleitung zur Übung

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

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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