Что такое duck typing в Python?

Middle
368 просмотров
AFK Offer AI

Duck typing — если объект ходит как утка и крякает как утка, это утка. Python не проверяет тип, проверяет наличие методов. len() вызывает __len__(), for вызывает __iter__() — неважно, какой класс. Не нужно наследование от интерфейса. Это делает код гибким: функция принимает "что угодно с методом read()" вместо "только File". Минус — ошибки только в runtime. Типизация (Protocol, type hints) добавляет статическую проверку, сохраняя duck typing. EAFP стиль идеально сочетается с duck typing.

Следующий вопрос

Как работает try/except/finally?