Drucke die Rückgabeart
Du debuggst gerade ein Paket, an dem du mit deinen Freunden gearbeitet hast. Irgendetwas Seltsames passiert mit den Daten, die von einer deiner Funktionen zurückgegeben werden, aber du bist dir nicht einmal sicher, welche Funktion das Problem verursacht. Du weißt, dass sich manchmal Fehler in deinen Code einschleichen können, wenn du von einer Funktion erwartest, dass sie etwas zurückgibt, und sie etwas anderes zurückgibt. Wenn du zum Beispiel von einer Funktion erwartest, dass sie ein Numpy-Array zurückgibt, sie aber eine Liste zurückgibt, kann es zu unerwartetem Verhalten kommen. Um sicherzustellen, dass dies nicht die Ursache des Problems ist, schreibst du einen Decorator, print_return_type()
, der den Typ der Variablen ausgibt, die bei jedem Aufruf einer Funktion, die er dekoriert, zurückgegeben wird.
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Anleitung zur Übung
- Erstelle eine verschachtelte Funktion,
wrapper()
, die die neue dekorierte Funktion wird. - Rufe die Funktion auf, die dekoriert werden soll.
- Gib die neue dekorierte Funktion zurück.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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}))