Rozdział 14 · Tworzenie rzeczywistych obiektów
Polimorfizm
Ten sam łańcuch znaków kodu — .zvuk() — zachowuje się inaczej w zależności od tego, który dokładnie obiekt go wywołał.
Jedno wezwanie, różne wyniki
Polimorfizm („wiele form”
polimorfizm.py
class Sobaka:
def zvuk(self):
return „Hau!”
class Koshka:
def zvuk(self):
return „Miau!”
class Korova:
def zvuk(self):
return „Muu!”
zhivotnye = [Sobaka(), Koshka(), Korova()]
for zh in zhivotnye:
print(zh.zvuk()) # INNA wersja zvuk() jest wywoływana za każdym razem
Pętla nie wie i nie powinna wiedzieć, z którą klasą pracuje
String
zh.zvuk() wewnątrz pętli JEDEN — nie musi sprawdzać if isinstance(zh, Sobaka): ... jest taki sam dla każdej klasy. To jest wartość polimorfizmu: kod, który UŻYWA obiektów, pozostaje prosty i nie rośnie wraz z każdą nową klasą zwierząt.Praktyka: polimorfizm
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji