(PL) – Object-Oriented Programming w Pythonie
Minął kolejny etap mojej ścieżki – tym razem skupiłem się na programowaniu obiektowym (OOP). To zagadnienie kluczowe, bo właśnie ono pozwala łączyć dane i logikę w spójną całość, a także organizować większe projekty w czytelny sposób. Zdecydowanie jest to jeden z tematów, który nie jest prosty ale daje satysfakcję, gdy poznaje się jego tajemnice.
Przerobione zagadnienia:
- Klasy i obiekty
- Dziedziczenie i polimorfizm
- Metody (instancyjne, klasowe, statyczne)
- Enkapsulacja (@property)
- Metody specjalne („dundery”)
- Mixiny i kompozycja
- Klasy abstrakcyjne (ABC) i Protocol
- Context Manager (with)
- Własne wyjątki
Ćwiczenie
Zamiast kilku prostych skryptów przygotowałem jeden większy projekt – Mini Library Manager.
Projekt symuluje katalog biblioteczny, w którym można dodawać książki, e-booki i czasopisma, wyszukiwać je, a także wypożyczać i zwracać z pomocą sesji działającej jak transakcja (rollback przy błędzie).
Dzięki temu mogłem w praktyce zastosować praktycznie wszystkie mechanizmy OOP w Pythonie – od prostych klas i dziedziczenia, po protokoły, dundery i context manager. To jeden z bardziej skomplikowanych kodów jaki napisałem.
🔗 Kod dostępny na GitHubie: https://github.com/Karol-Polak/Python_roadmap_journey/tree/main/OOP
Wnioski
To jak dotąd najbardziej wymagający etap, ale jednocześnie najbardziej satysfakcjonujący. Widzę, jak bardzo OOP porządkuje kod i daje fundamenty do większych projektów.
🔜 Kolejne wyzwanie: Package managers, Common packages, Paradigms.
Do usłyszenia 🖐🏼
(ENG) – Object-Oriented Programming in Python
Another step on my learning path – this time I focused on Object-Oriented Programming (OOP). It’s a key concept since it allows combining data and logic in a structured way, and organizing larger projects into clean, reusable components. This is definitely one of the topics that is not simple, but it gives satisfaction when you learn its secrets.
Covered topics:
- Classes and objects
- Inheritance and polymorphism
- Instance, class, and static methods
- Encapsulation with @property
- Special methods (dunders)
- Mixins and composition
- Abstract Base Classes (ABC) & Protocol
- Context Manager (with)
- Custom exceptions
Exercise
Instead of many small scripts, I built one bigger project – Mini Library Manager.
It simulates a library catalog where you can add books, e-books, and magazines, search them, and manage loans with a session that works like a transaction (rollback on error).
This allowed me to apply nearly every OOP mechanism in Python in practice – from simple classes and inheritance to protocols, dunders, and context managers.
🔗 Code available on GitHub: https://github.com/Karol-Polak/Python_roadmap_journey/tree/main/OOP
Conclusion
So far, this has been the most challenging stage, but also the most rewarding. I see how much OOP helps in structuring code and provides a solid foundation for larger projects.
🔜 Next step: Package managers, Common packages, Paradigms.
see you later🖐🏼
Top comments (0)