关于鸭子类型,在百科中是这么描述的:“鸭子类型”的语言是这么推断的:一只鸟走起来像鸭子、游起泳来像鸭子、叫起来也像鸭子,那它就可以被当做鸭子。也就是说,它不关注对象的类型,而是关注对象具有的行为(方法)。
鸭子类型在python中经常使用到,python属于动态语言,不需要声明变量类型,而是在解释器中运行时候动态写入改变其结构。
关注的不是对象的类型本身,而是它是如何使用的。类与类之间不用共同继承一个父类,只需要将它们做得像一种事物即可
举个例子:在下面的方法中只要实现了say这个方法(行为)就可以被调用
在举个列子
extend方法的参数是接收一个可迭代的对象,而list、tuple、和set对象都实现了__iter__(self)(定义当迭代容器中的元素的行为),这就是所谓的,它不关注对象的类型,而是关注对象具有的行为(方法)。
网友评论