11

“鸭子打字”这个名字背后有什么故事吗,我听说过“如果它看起来像鸭子,听起来像鸭子,我们就叫它鸭子”(或类似的东西),但为什么鸭?为什么不“如果它看起来像_,听起来像_,我们就叫它_”。

这听起来像一个飞行马戏团的草图,但我不记得了。这个名字背后有故事吗?

4

5 回答 5

8

鸭子打字是从更古老的“像鸭子一样走路”借来的短语。后者的存在时间远远超过它所描述的编程思想。请参阅answerbag.com

于 2009-12-04T04:40:43.880 回答
3

http://groups.google.com/group/comp.lang.python/msg/e230ca916be58835?hl=en&

亚历克斯参与其中... ;)

于 2009-12-04T04:40:59.743 回答
3

这不是一个真正的编程问题,但我的猜测是:鸭子走路很有趣,他们嘎嘎叫。这很有趣,可以把它变成一个比喻。:-)

于 2009-12-04T04:42:02.783 回答
3

引用维基百科关于 Duck Typing 的文章

这个概念的名称是指鸭子测试,归因于詹姆斯·惠特科姆·赖利( James Whitcomb Riley),它可以表述如下:“当我看到一只像鸭子一样走路、像鸭子一样游泳、像鸭子一样嘎嘎叫的鸟时,我称那只鸟鸭子。”

...并从同一页面...

Alex Martelli早在 2000 年就在给 comp.lang.python 新闻组的消息中使用了该术语。他还强调了对字面鸭测试的误解,这可能表明该术语已经在使用:

“换句话说,不要检查它是否是鸭子:检查它是否像鸭子一样呱呱叫,像鸭子一样走路,等等,这取决于你需要的鸭子样行为的子集玩你的语言游戏。”

于 2011-08-03T08:06:00.163 回答
0

不,类比是如果一个变量看起来像一个整数(例如),并且作为一个整数,它必须是一个整数(类型)。

鸭子类型意味着“没有明确的类型预先声明”。

于 2009-12-04T04:47:54.557 回答