Утиная типизация (duck typing)
Коротко: Утиная типизация означает: объект оценивают по тому, что он умеет, а не по тому, к какому классу принадлежит. «Если оно ходит как утка и крякает как утка, то это утка».
Подробнее: В динамических языках вроде Python, Ruby и JavaScript достаточно, чтобы у объекта были нужные методы; общий базовый класс или интерфейс не требуется. Если что-то не подходит, это замечают только во время выполнения. У Go и TypeScript есть статически проверяемый вариант — структурная типизация.
Подробности
class Duck:
def quack(self): retuСм. также: полиморфизм, интерфейс, системы типов, вывод типов