Принцип утиной типизации в Python заключается в том, что важен не конкретный тип объекта, а набор действий, который над ним можно произвести. 3
Другими словами, пригодность объекта для определённой операции определяется тем, поддерживает ли он требуемые методы или атрибуты, а не проверкой его явного типа. 1
Пример: если объект крякает как утка (имеет метод quack) и ходит как утка (имеет метод walk), Python рассматривает его как утку, независимо от его класса или иерархии наследования. 1
Утиная типизация способствует повторному использованию кода и гибкости, позволяя использовать взаимозаменяемо объекты разных классов, если они демонстрируют необходимое поведение. 1