Sobes.tech
Back to questions
Junior — Middle
69

Можете ли вы объяснить концепцию утилизации типов (duck typing) в языке Python?

Companies where asked
ArendadataArendadata
Фабрика РешенияФабрика Решения
Атом Безопасность

Answer from AI

sobes.tech AI

Утилизация типов (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

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