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
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}))