Что такое утиная типизация?

Утилизация типов (duck typing) в Python — это концепция, при которой тип объекта определяется не по его классу, а по наличию определённых методов и свойств.

Короткий ответ

Что ответить на собеседовании

Утилизация типов (duck typing) в Python — это концепция, при которой тип объекта определяется не по его классу, а по наличию определённых методов и свойств. Если объект ведёт себя как нужный тип (например, поддерживает нужные операции), то он считается подходящим.

Подробный разбор

Ответ с пояснениями

Утилизация типов (duck typing) в Python — это концепция, при которой тип объекта определяется не по его классу, а по наличию определённых методов и свойств. Если объект ведёт себя как нужный тип (например, поддерживает нужные операции), то он считается подходящим.

Фраза "Если что-то выглядит как утка, плавает как утка и крякает как утка, значит это утка" отражает суть duck typing.

Например, функция может принимать любой объект, который поддерживает метод write(), не заботясь о том, к какому классу он принадлежит:

def write_hello(file_like):
    file_like.write('Hello')

class File:
    def write(self, text):
        print(f'Writing to file: {text}')

class Logger:
    def write(self, text):
        print(f'Logging: {text}')

write_hello(File())   # Writing to file: Hello
write_hello(Logger()) # Logging: Hello

Таким образом, важен интерфейс объекта, а не его конкретный тип.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее