Afișează tipul valorii returnate
Depanezi un pachet la care ai lucrat împreună cu prietenii tăi. Ceva ciudat se întâmplă cu datele returnate de una dintre funcții, dar nu știi exact care dintre ele provoacă problema. Uneori, erorile se strecoară în cod atunci când te aștepți ca o funcție să returneze un anumit tip de date, dar aceasta returnează altceva. De exemplu, dacă te aștepți ca o funcție să returneze un array NumPy, dar primești o listă, pot apărea comportamente neașteptate. Pentru a exclude această posibilitate, decizi să scrii un decorator, print_return_type(), care să afișeze tipul variabilei returnate la fiecare apel al oricărei funcții pe care o decorează.
Acest exercițiu face parte din cursul
Scrierea funcțiilor în Python
Instrucțiuni pentru exercițiu
- Creează o funcție imbricată,
wrapper(), care va deveni noua funcție decorată. - Apelează funcția care este decorată.
- Returnează noua funcție decorată.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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}))