美文网首页
鸭子类型

鸭子类型

作者: 仁安天下 | 来源:发表于2019-10-12 23:57 被阅读0次
class duck():

  def walk(self):

    print('I walk like a duck')

  def swim(self):

    print('i swim like a duck')



class person():

  def walk(self):

    print('this one walk like a duck')

  def swim(self):

    print('this man swim like a duck')

def watch_duck(animal):

  animal.walk()

  animal.swim()

small_duck = duck()

watch_duck(small_duck)

output >>

I walk like a duck

i swim like a duck

duck_like_man = person()

watch_duck(duck_like_man)

output >>

this one walk like a duck

this man swim like a duck

class Lame_Foot_Duck():

  def swim(self):

    print('i am lame but i can swim')

lame_duck = Lame_Foot_Duck()

watch_duck(lame_duck)

output >>
AttributeError: Lame_Foot_Duck instance has no attribute 'walk'

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

在实际例子中,如果创建了一个类,它含有getitem()方法,那么它就可以看做是一个list类,这就是是所谓的鸭子类型

相关文章

  • 语法

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

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

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

  • 第三章:深入类和对象

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

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

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

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

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

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

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

  • 鸭子类型

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

  • 鸭子类型

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

  • 鸭子类型

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

  • 鸭子类型

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

网友评论

      本文标题:鸭子类型

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