前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3之鸭子类型

python3之鸭子类型

作者头像
py3study
发布2020-01-10 17:31:19
7820
发布2020-01-10 17:31:19
举报
文章被收录于专栏:python3

鸭子类型

简单的跟大家聊一聊python中的鸭子类型,通过一个例子来理解就很简单了。

一句话:“当看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来也想鸭子,那么这只鸟就可以被称为鸭子。”,也就是我并不关心对象什么类型,到底是不是鸭子,只关心行为。

假如定义了一个函数,传入一个类对象,我们并不需要知道这个类对象是不是我们想要的类对象,只要他有需要的方法,那么这个函数就可以执行。

Person类拥有更Duck类一样的方法,当有一个函数调用Duck类,并利用到了两个方法walk()和swim(),我们传入person也是一样可以运行,函数watch并不会检查对象是不是duck,只要他拥有walk和swim方法就可以正确被使用。

以上可以看出,watch函数不会检查对象的类型,而是直接调用这个对象的走和游的方法,如果所需要的方法不存在就会报错。

python中的鸭子类型

可以发现extend方法接收的参数中并不关心你的类型,只要可以迭代,这个函数就可以执行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 鸭子类型
    • 简单的跟大家聊一聊python中的鸭子类型,通过一个例子来理解就很简单了。
      • python中的鸭子类型
        • 可以发现extend方法接收的参数中并不关心你的类型,只要可以迭代,这个函数就可以执行
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档