Sobes.tech
Back to questions
Junior — Middle
52

Можешь перечислить виды полиморфизма, применяемые в Python?

Companies where asked
ArendadataArendadata

Answer from AI

sobes.tech AI

В Python применяются следующие виды полиморфизма:

  1. Полиморфизм подтипов (наследование) — объекты разных классов, связанных наследованием, могут использоваться через общий интерфейс. Например, разные подклассы реализуют один и тот же метод с разной логикой.

  2. Полиморфизм параметров (перегрузка функций) — в Python нет классической перегрузки по типам, но можно реализовать функции, принимающие разные типы аргументов и ведут себя по-разному (динамическая типизация).

  3. Полиморфизм включения (duck typing) — объект считается подходящим, если у него есть необходимые методы или свойства, независимо от его класса. Например, если объект "крякает" и "плавает", его можно считать уткой.

Пример duck typing:

class Duck:
    def quack(self):
        print("Кря-кря")

class Person:
    def quack(self):
        print("Я могу крякать как утка")

def make_it_quack(duckish):
    duckish.quack()

make_it_quack(Duck())    # Кря-кря
make_it_quack(Person())  # Я могу крякать как утка

Таким образом, полиморфизм в Python основан на гибкости динамической типизации и наследовании.