Wprowadzenie do dekoratorów
Część sekcji Programowanie obiektowe ścieżki Python w Coddy. Lekcja 9 z 64.
Dekoratory pozwalają modyfikować lub rozszerzać funkcje i klasy bez zmieniania ich oryginalnego kodu. Używają symbolu @.
Oto przykład prostego dekoratora:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperZastosuj dekorator za pomocą @:
@my_decorator
def say_hello():
print("Hello!")Wywołaj udekorowaną funkcję:
say_hello()Wynik:
Before function runs
Hello!
After function runsZapis @my_decorator jest równoważny zapisowi:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Ale składnia @ jest znacznie bardziej przejrzysta i łatwiejsza do czytania.
Najważniejsza kwestia: dekoratory otaczają funkcje, dodając dodatkową funkcjonalność bez modyfikowania kodu oryginalnej funkcji
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektyParametr selfMetodyAtrybutyMetoda konstruktora (__init__)Powtórzenie – prosty kalkulator4Dziedziczenie
Podstawy dziedziczeniaFunkcja super()Nadpisywanie metodDziedziczenie wielokrotneKolejność rozwiązywania metodPodsumowanie – hierarchia pracowników7Metody specjalne
Wprowadzenie do metod magicznychPrzeciążanie operatorówMagiczne metody kontenerówPowtórka – własna lista10Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec Strategy2Dekoratory
Wprowadzenie do dekoratorówDekorator propertyDekorator metody statycznejDekorator metody klasowej5Polimorfizm
Ponowne omówienie nadpisywania metodTypowanie kaczeKlasy i metody abstrakcyjneProjektowanie interfejsówPodsumowanie — kalkulator kształtów8Zaawansowane koncepcje programowania obiektowego
Kompozycja a dziedziczenieMiksyMetody statyczne i klasoweDekoratory klasMenedżery kontekstu11Wzorce projektowe, część 2
Wzorzec PolecenieWzorzec AdapterWzorzec DekoratorWzorzec Metoda szablonowaWzorzec StanWzorzec Kompozyt3Właściwości klas
Zmienne instancji a zmienne klasoweDekoratory właściwościAtrybuty prywatnePowtórzenie — menedżer kont bankowych6Hermetyzacja
Public, Protected, Private — pamięćModyfikatory dostępuUkrywanie informacjiDekoratory właściwości — zaawansowanePodsumowanie — system ewidencji uczniów12Projekt: System zarządzania biblioteką
Przegląd projektuKlasy Book i UserSystem wypożyczeńFunkcja wyszukiwaniaInterfejs administratoraTestowanie i integracjaPoćwicz samodzielnie: Kompilator Python online