Polimorfizm - wielopostaciowość w Pythonie
Polimorfizm to jeden z czterech filarów programowania obiektowego (obok enkapsulacji, dziedziczenia i abstrakcji). Pozwala na traktowanie obiektów różnych klas w jednolity sposób, o ile udostępniają one ten sam interfejs. Dzięki polimorfizmowi kod staje się bardziej elastyczny, ponieważ funkcje i metody mogą operować na abstrakcyjnych interfejsach, a nie na konkretnych typach.
W Pythonie polimorfizm przejawia się na wielu poziomach: od przeciążania operatorów za pomocą metod specjalnych ( __add__ , __len__ ), przez dynamiczne wiązanie metod w czasie wykonania (late binding), aż po formalne definiowanie interfejsów za pomocą klas abstrakcyjnych z modułu abc . Każdy z tych mechanizmów służy temu samemu celowi: umożliwieniu napisania kodu, który działa poprawnie z obiektami różnych typów, o ile spełniają one określony kontrakt.
W tej części poznasz mechanizmy polimorfizmu w Pythonie: duck typing, dziedziczenie, sprawdzanie typów, klasy abstrakcyjne oraz dynamiczne sprawdzanie atrybutów. Nauczysz się również, jak łączyć te techniki w praktyce, aby tworzyć kod łatwy w utrzymaniu i rozwijaniu.

































