> Что такое duck typing и динамическая типизация в Python (Python)
Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: JetLend
Стек: Python
> Пример ответа
Duck typing - это принцип, характерный для динамически типизированных языков, который гласит: "Если объект ходит как утка и крякает как утка, то это утка". В Python это означает, что тип объекта определяется не его классом, а наличием необходимых методов и атрибутов. Например, если функция ожидает объект с методом .read(), ей подойдёт как файл, так и StringIO - главное, чтобы метод существовал.
Динамическая типизация - это свойство языка, при котором типы переменных проверяются во время выполнения, а не на этапе компиляции. В Python вы можете присвоить одной переменной сначала число, потом строку, и это не вызовет ошибки до момента, пока вы не попытаетесь выполнить неподдерживаемую операцию (например, сложить строку с числом).
Пример:
PYTHONclass Duck:def quack(self):return "Quack!"class Person:def quack(self):return "I'm quacking like a duck!"def make_it_quack(thing):print(thing.quack()) # duck typing: не важно, кто это, лишь бы был метод quackmake_it_quack(Duck()) # Quack!make_it_quack(Person()) # I'm quacking like a duck!
Оба класса подходят, так как реализуют метод quack. Это и есть суть duck typing в контексте динамической типизации Python.
> Похожие задачи по Python
Что произойдет при изменении второго элемента списка b, если b = a
Что такое mock и для чего он используется
Что такое синхронность, многопоточность и многопроцессорность
Какие типы и структуры данных поддерживает Redis
> Похожие задачи по backend
Что произойдет при изменении второго элемента списка b, если b = a
Что такое mock и для чего он используется
Что такое синхронность, многопоточность и многопроцессорность
Какие типы и структуры данных поддерживает Redis
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью