Wyświetlanie zwracanego typu
Debugujesz pakiet, nad którym pracujesz razem ze znajomymi. Coś dziwnego dzieje się z danymi zwracanymi przez jedną z funkcji, ale nie wiesz jeszcze, która z nich sprawia kłopoty. Wiesz, że błędy często pojawiają się wtedy, gdy funkcja zwraca coś innego, niż się spodziewasz. Na przykład jeśli oczekujesz tablicy numpy, a funkcja zwraca listę, możesz napotkać nieoczekiwane zachowanie. Żeby sprawdzić, czy właśnie to jest przyczyną problemu, postanawiasz napisać dekorator print_return_type(), który będzie wyświetlał typ zmiennej zwracanej przez każde wywołanie dekorowanej funkcji.
To ćwiczenie jest częścią kursu
Pisanie funkcji w Pythonie
Instrukcje do ćwiczenia
- Utwórz funkcję zagnieżdżoną
wrapper(), która stanie się nową udekorowaną funkcją. - Wywołaj dekorowaną funkcję.
- Zwróć nową udekorowaną funkcję.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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}))