Jakie tematy będą omawiane na kursie?
Podstawy Python OOP
Wprowadzenie:
Przegląd kursu i cele
Znaczenie obiektowego programowania w Pythonie
Wymagania wstępne i rozpoczęcie
Klasy i obiekty:
Definiowanie klas i obiektów w Pythonie
Zrozumienie atrybutów klas i atrybutów instancji
Implementacja konstruktorów (__init__) do inicjalizacji obiektów
Tworzenie i manipulowanie obiektami
Atrybuty i Metody:
Praca z metodami instancji i metodami klasy
Zrozumienie przeciążania i nadpisywania metod
Implementacja metod statycznych
Hermetyzacja danych za pomocą atrybutów prywatnych i chronionych
Dziedziczenie:
Tworzenie i używanie podklas w Python
Implementacja dziedziczenia w celu ponownego wykorzystania kodu
Zrozumienie porządku rozwiązywania metod (MRO)
Używanie super() do dostępu do metod klasy nadrzędnej
Enkapsulacja:
Zbliżając się do końca naszej podróży, skupiamy się na enkapsulacji, kluczowym pojęciu w programowaniu obiektowym.
Badanie modyfikatorów dostępu takich jak public, private i protected
Zrozumienie, jak modyfikatory dostępu ograniczają dostęp do członków klasy
Implementacja enkapsulacji w celu ochrony danych w klasach
Polimorfizm:
Zrozumienie polimorfizmu i jego typów
Implementacja nadpisywania metody i przeciążania operatorów
Wykorzystanie polimorfizmu do pisania elastycznego i wielokrotnego użytku kodu
Specjalne metody (Magiczne metody):
Odkrywanie specjalnych metod takich jak __str__, __repr__, __len__, __add__
Zrozumienie celu i zastosowania specjalnych metod
Implementacja niestandardowych zachowań używając specjalnych metod
Abstrakcja i interfejsy:
Zrozumienie klas abstrakcyjnych i metod abstrakcyjnych
Użycie modułu ABC (Abstract Base Classes) do abstrakcji
Implementacja interfejsów i przestrzeganie kontraktu
Kompozycja i Agregacja:
Zrozumienie kompozycji i agregacji
Budowanie złożonych obiektów przy użyciu kompozycji
Implementacja agregacji do modelowania relacji
Właściwości i Dekoratory:
Implementacja metod getter i setter
Zrozumienie dekoratorów właściwości (@property, @setter, @deleter)
Używanie właściwości do enkapsulacji atrybutów
Wielokrotne dziedziczenie:
Zrozumienie wielokrotnego dziedziczenia i jego pułapek
Używanie wielokrotnego dziedziczenia do łączenia funkcji z wielu klas
Zarządzanie kolejnością rozwiązywania metod (MRO) w wielokrotnym dziedziczeniu
Kolejność Rozwiązywania Metod (MRO):
Kolejność Rozwiązywania Metod (MRO), kluczowy aspekt dziedziczenia w Pythonie.
Zrozumienie, jak Python określa kolejność, w której metody są rozwiązywane
Używanie super() do nawigacji po Kolejności Rozwiązywania Metod
Duck Typing:
Zrozumienie konceptu Duck Typing
Implementacja Duck Typing do pisania elastycznego kodu
Wykorzystanie Duck Typing do pracy z różnymi typami obiektów
Ukrywanie danych:
Zrozumienie enkapsulacji i ukrywania danych
Użycie enkapsulacji do ograniczenia dostępu do danych
Implementacja prywatnych atrybutów i metod
Kompozycja nad dziedziczeniem:
Zrozumienie zasady kompozycji nad dziedziczeniem
Identyfikacja scenariuszy, gdzie kompozycja jest preferowana
Budowanie elastycznego i łatwego w utrzymaniu kodu przy użyciu kompozycji
Podsumowanie myśli na temat programowania obiektowego w Pythonie:
Refleksje na temat nauki programowania obiektowego w Pythonie
Podziękowania i kolejne kroki