Vypis návratový typ
Ladíš balíček, na kterém pracuješ společně s kamarády. S daty, která vrací jedna z funkcí, se děje něco podivného – zatím ale nevíš, která funkce za to může. Víš, že chyby se do kódu občas vkradou ve chvíli, kdy funkce vrátí jiný typ, než jsi čekal/a. Například pokud očekáváš numpy pole, ale funkce vrátí seznam, může to způsobit neočekávané chování. Aby sis ověřil/a, že právě tohle není příčina problému, rozhodneš se napsat dekorátor print_return_type(), který při každém volání dekorované funkce vypíše typ hodnoty, kterou funkce vrátí.
Toto cvičení je součástí kurzu
Writing Functions in Python
Pokyny k cvičení
- Vytvoř vnořenou funkci
wrapper(), která se stane novou dekorovanou funkcí. - Zavolej dekorovanou funkci.
- Vrať novou dekorovanou funkci.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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}))