Печатание утки - что делать, когда вам нужен конкретный тип? - PullRequest
1 голос
/ 30 июля 2009

Допустим, вы работаете с калькулятором на динамическом языке (Python и т. Д.) И у вас есть метод add.

def Add(x, y)
    print x + y

Теперь, если вы передадите что-нибудь, кроме числа, которое будет неправильным, вам нужна проверка типа данных.

Дак печатает на предметах, а не на параметрах, как в примере выше?

Может ли кто-нибудь объяснить дальше?

Редактировать

Под объектами я подразумеваю:

Person.Quack()
Duck.Quack()

Не заботясь о том, что передается в методы.

1 Ответ

2 голосов
/ 30 июля 2009

Утиная печать - это не забота о том, с какими объектами вы работаете, если они поддерживают необходимые операции. Так что, если + - это конкатенация строк, тогда передача строк в Add будет в порядке. Если даты поддерживают операцию +, то и с датами в порядке.

...