Python a-z

Twoje centrum interaktywnej nauki Pythona: fiszki, przykłady kodu i edytor w przeglądarce.

Poziom: średni Fiszka #149 · Python

Co to jest duck typing i jak wpływa na polimorfizm w Pythonie?

💡 Wskazówka do nauki: Zanim odsłonisz odpowiedź poniżej, spróbuj samodzielnie sformułować definicję lub napisać krótki przykład kodu w głowie (albo w naszym edytorze online).

Pokaż odpowiedź i przykład kodu

Opis i wyjaśnienie:

Duck typing to koncepcja, według której typ obiektu jest mniej ważny niż metody lub atrybuty, które posiada. W Pythonie pozwala to na implementację polimorfizmu bez konieczności używania dziedziczenia czy interfejsów, ponieważ ważne jest, aby obiekt zachowywał się w określony sposób, a nie jaki ma dokładnie typ.

Przykład w Pythonie:

class Kot:
    def dzwiek(self): return "miau"
class Pies:
    def dzwiek(self): return "hau"
for zw in [Kot(), Pies()]:
    print(zw.dzwiek())