2009-07-30 26 views
1

假设你正在用动态语言(Python等)做一个计算器,并且你有一个add方法。鸭子打字 - 什么时候你需要一个具体的类型?

def Add(x, y) 
    print x + y 

现在,如果您要传入的数字是错误的,那么您需要进行一些数据类型检查。

Duck是否像上面的例子一样输入对象而不是参数?

任何人都可以进一步解释吗?

编辑

通过对象我的意思是:

Person.Quack() 
Duck.Quack() 

由于没有什么被传递到方法的照顾。

回答

2

鸭子打字不关心你正在使用的物体是什么,只要它们支持必要的操作。所以如果+是字符串连接,那么将字符串传递给Add就没问题。如果日期支持+操作,那么通过日期也不错。

+0

+1示例Add方法将很好地用于字符串。关于`+`,许多类型都可以工作。 – 2009-07-30 18:54:17

相关问题