鸭子打字 - 什么时候需要混凝土类型?

时间:2009-07-30 18:44:51

标签: dynamic-languages duck-typing

假设您正在使用动态语言(Python等...)进行计算,并且您有一个添加方法。

def Add(x, y)
    print x + y

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

是鸭子打字对象而不是像上面那样的参数吗?

有人可以进一步解释吗?

修改

我指的是对象:

Person.Quack()
Duck.Quack()

不关心传递给方法的内容。

1 个答案:

答案 0 :(得分:2)

只要他们支持必要的操作,鸭子打字就不关心你正在使用的对象是什么。因此,如果+是字符串连接,那么将字符串传递给Add就可以了。如果日期支持+操作,那么传递日期也可以。