Składnia Python
Lekcja 6 z 12 w kursie Dekoratory w Pythonie w Coddy.
W poprzedniej lekcji zobaczyliśmy, jak tworzyć dekoratory funkcji. Python oferuje jednak znacznie bardziej elegancki sposób uzyskania tej funkcjonalności za pomocą symbolu @.
Na przykład:
def my_decorator(func):
def wrapper():
print("Before function is called.")
func()
print("After function is called.")
return wrapper
@my_decorator
def my_function():
print("Inside my_function.")Gdy uruchomimy my_function(), zobaczymy taki wynik:
Before function is called.
Inside my_function.
After function is called.Pokazuje to, że dekorator funkcji my_decorator mógł zmienić działanie my_function, dodając dodatkowy kod przed jej wywołaniem i po nim.
Wyzwanie
ŁatwyMasz podany kod funkcji add.
Twoim zadaniem jest napisać dekorator funkcji o nazwie debug, tak jak w poprzedniej lekcji, ale z kilkoma dodatkami:
- Dołącz dekorator funkcji
debugdoaddza pomocą symbolu@. - Funkcja debug powinna obsługiwać argumenty funkcji.
Aby obsłużyć funkcję z argumentami w dekoratorze,
def my_decorator(func):
def wrapper(a, b):
print("Before function is called.")
func(a, b)
print("After function is called.")
return wrapperPrzykład:
Po wywołaniu funkcji add(2, 3) powinno zostać wypisane,
Calling add with arguments (2, 3)
add returned: 5Spróbuj swoich sił
# Wpisz kod tutaj
def add(a, b):
return a + bWszystkie lekcje w sekcji Dekoratory w Pythonie
Poćwicz samodzielnie: Kompilator Python online