鸭子类型

作者: JUN_API | 来源:发表于2017-05-15 08:20 被阅读0次

动态类型语言对变量类型的快通给事件编码带了了很大的灵活性.由于无需进行类型检测,我们可以尝试电泳任何对象的任意方法,而无需去考虑它原本是否被设计为拥有该方法.
这一切都建立在鸭子类型(duck typing)的概念上,鸭子类型的通俗说法是:"如果它走起路来像鸭子,叫起来也是鸭子,那么它就是鸭子"
在动态类型语言的面向对象设计中,鸭子类型的概率至关重要.利用鸭子类型的思想,我们不必借助超类型的帮助,就能轻松地在动态类型语言中实现一个原则:"面向接口编程,而不是面向实现编程."例如,一个对象若有push和pop方法,并且这些方法提供了正确的实现,它就可以被当做栈来使用.一个对象吐过有length属性,也可以依照下标来存取属性,这个对象就可以被当做数组来使用.
在静态类型语言中,要实现"面向接口编程"并不是一个容易的事情,往往要通过抽象类或者接口等将对象进行向上转型.当对象的真正类型被隐藏在它的超类型身后,这个对象才能在类型检测系统"监视"之下互相被替换使用.只用当对象能够被互相替换使用,才能体现出对象多态性的价值.

相关文章

  • 语法

    鸭子类型 动态语言中经常提到鸭子类型,所谓鸭子类型就是:如果走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子(If ...

  • python入门系列:深入类和对象

    鸭子类型和多态 引言 在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。 例如,在不使用鸭子类型的语言中...

  • 第三章:深入类和对象

    1.鸭子类型和多态 什么是鸭子类型当一只鸟走起路来像鸭子,游泳起来像鸭子,叫起来像鸭子,就可以称这只鸟为鸭子.也就...

  • Python高级知识点学习(二)

    深入类和对象 鸭子类型问:什么是鸭子类型?答:当看到一只鸟走起路来像鸭子,游泳像鸭子,叫起来也像鸭子,那么这只鸟就...

  • Python面试宝典之基础篇-06

    题目26:什么是鸭子类型(duck typing)? 鸭子类型是动态类型语言判断一个对象是不是某种类型时使用的方法...

  • C++11 模板元编程 - 鸭子类型

    模板为C++提供了鸭子类型(Duck typing)的特性。所谓鸭子类型,指的是代码关注的不是对象的类型本身,而是...

  • 鸭子类型

    什么是鸭子类型? 一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。 ...

  • 鸭子类型

    动态类型语言对变量类型的快通给事件编码带了了很大的灵活性.由于无需进行类型检测,我们可以尝试电泳任何对象的任意方法...

  • 鸭子类型

    什么是鸭子类型 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象...

  • 鸭子类型

    看例子,传入def watch_duck函数的时候,就默认给了类的方法,如果没有这个方法,函数就会报错 在实际例子...

网友评论

    本文标题:鸭子类型

    本文链接:https://www.haomeiwen.com/subject/vpmxxxtx.html