Back to questions
Arendadata
Фабрика Решения
Junior — Middle
69
Можете ли вы объяснить концепцию утилизации типов (duck typing) в языке Python?
Companies where asked
Атом Безопасность
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
Таким образом, важен интерфейс объекта, а не его конкретный тип.