утиную типизацию используют не вместо интерфейсов, а просто используют
Просто пишешь код, как будто объекты имеют все нужные поля и методы. Если есть вероятность того, что полей и методов в объекте не будет - заворачиваешь код в try...except или предварительно проверяешь объекты через hasattr()
Обсуждают сегодня