博客
关于我
python小白实现对鸭子类型的简单模拟
阅读量:144 次
发布时间:2019-02-28

本文共 681 字,大约阅读时间需要 2 分钟。

本博文源于python基础,旨在对鸭子类型进行简单的模拟。

鸭子类型

所谓的鸭子类型就是根据对象的当前方法和属性集合决定,而不是根据继承自特定的类与接口设定。 在实际的程序设计中,通常不测试方法和函数中参数的类型,而是依赖文档、清晰的代码和测试来确保正确使用。

例子:模拟鸭子类型,实现对象的多态

实例模拟了鸭子、猫和树。因为树木没有这种叫的方法,因此它就会报错。

实验效果

在这里插入图片描述

实验代码

class Duck(object):    def __init__(self, name='duck'):        self.name = name    def quack(self):        print('嘎嘎嘎....')class Cat(object):    def __init__(self, name='cat'):        self.name = name    def quack(self):        print('喵喵喵....')class Tree(object):    def __init__(self, name='tree'):        self.name = namedef duck_demo(obj):    obj.quack()if __name__ == '__main__':    duck = Duck()    cat = Cat()    tree = Tree()    duck_demo(duck)    duck_demo(cat)    duck_demo(tree)

转载地址:http://jhrd.baihongyu.com/

你可能感兴趣的文章
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>