Печатание утки - что делать, когда вам нужен конкретный тип?
Скажем, вы делаете калькулятор на динамическом языке (Python и т. Д.) И у вас есть метод add.
def Add(x, y)
print x + y
Теперь, если вы передадите что-либо, кроме числа, которое будет неправильным, вам нужна проверка типа данных.
Duck Typing об объектах в отличие от параметров, подобных приведенному выше примеру?
Кто-нибудь может объяснить дальше?
редактировать
Под объектами я имею в виду:
Person.Quack()
Duck.Quack()
Не заботясь о том, что передается в методы.
1 ответ
Решение
Утиная печать не заботится о том, с какими объектами вы работаете, если они поддерживают необходимые операции. Так что, если + - это конкатенация строк, тогда передача строк в Add будет в порядке. Если даты поддерживают операцию +, то и с датами в порядке.