Встречается на собеседованиях • сегодня
Какие плюсы и минусы утиной типизации
Утиная типизация в 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()) # Тоже работает
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы