“鸭子打字”词源?

时间:2009-12-04 04:37:03

标签: duck-typing

“鸭子打字”这个名字背后是否有一个故事,我听说'如果它看起来像一只鸭子,听起来像一只鸭子,我们称它为鸭子'(或类似的东西),但为什么是鸭子?为什么不``如果它看起来像一个_并且听起来像一个_,我们称之为_''。

这听起来像飞行马戏团的素描,但我不记得了。名字背后是否有故事?

5 个答案:

答案 0 :(得分:8)

鸭子打字是从较老的“像鸭子走路”中借来的短语。后者比它描述的编程理念要长得多。见answerbag.com

答案 1 :(得分:3)

答案 2 :(得分:3)

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

答案 3 :(得分:3)

引用维基百科的article on Duck Typing

  

这个概念的名称是指James Whitcomb Riley的鸭子测试,可以用以下语言表达:“当我看到   鸟像鸭子一样走路,像鸭子一样游泳,像嘎嘎叫一样呱呱叫   鸭子,我把那只鸟称为鸭子。“

......并且来自同一页......

  

Alex Martelli早期(2000年)在一条消息中使用了该术语   到comp.lang.python新闻组。他还强调   对文字鸭测试的误解,这可能表明了   术语已被使用:

     

“换句话说,不要检查它是否是鸭子:检查它是否   QUACKS-like-duck,WALKS-like-a duck等等,具体取决于   您需要扮演什么样的鸭子行为的子集   语言游戏。“

答案 4 :(得分:0)

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

鸭子打字意味着'没有明确的预先类型'。