Встречается на собеседованиях • сегодня

Какие плюсы и минусы утиной типизации

Утиная типизация в Python ("если это ходит как утка и крякает как утка, то это утка") имеет свои преимущества и недостатки:

Плюсы:

  • Гибкость — код работает с любыми объектами, имеющими нужные методы/атрибуты
  • Простота — не нужно объявлять интерфейсы или типы заранее
  • Полиморфизм — легко использовать разные классы с одинаковым поведением
  • Уменьшение шаблонного кода — не требуется наследование от абстрактных классов

Минусы:

  • Ошибки обнаруживаются только в runtime
  • Сложнее понимать код — неявные контракты
  • Нет автодополнения в IDE
  • Может привести к неочевидным багам

Пример:

python
class Duck:
    def quack(self):
        print("Quack!")

class Person:
    def quack(self):
        print("I'm quacking like a duck!")

def make_it_quack(duck):
    duck.quack()

make_it_quack(Duck())  # Работает
make_it_quack(Person())  # Тоже работает
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы