码迷,mamicode.com
首页 > 其他好文 > 详细

鸭子类型

时间:2018-09-14 17:29:48      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:工作方式   继承   python   编写   python程序   工作   而且   就是   标准   

Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。

例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法

 

class File:
pass

class Disk:
def read(self):
print(‘disk read‘)

def write(self):
print(‘disk write‘)


class Text:
def read(self):
print(‘text read‘)

def write(self):
print(‘text write‘)


disk=Disk()
text=Text()

disk.read()
disk.write()

text.read()
text.write()

例2:序列类型有多种形态:字符串,列表,元组,但他们直接没有直接的继承关系

#str,list,tuple都是序列类型
s=str(‘hello‘)
l=list([1,2,3])
t=tuple((4,5,6))

#我们可以在不考虑三者类型的前提下使用s,l,t
s.__len__()
l.__len__()
t.__len__()

len(s)
len(l)
len(t)

鸭子类型

标签:工作方式   继承   python   编写   python程序   工作   而且   就是   标准   

原文地址:https://www.cnblogs.com/sunny666/p/9647435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!