博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习札记(三十八) 面向对象编程 Object Oriented Program 9
阅读量:5765 次
发布时间:2019-06-18

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

参考:

NOTE

#!/usr/bin/env python3class Animal(object):    def __init__(self, name):        self.name = name    def getname(self):        print(self.name)class Fly(object):    def __init__(self):        pass    def getfly(self):        print('could fly')class Bird(Animal, Fly):    passdef main():    b = Bird('bird')    b.getname()    b.getfly()if __name__ == '__main__':    main()
sh-3.2# ./oop10.py birdcould fly

通过多重继承,一个子类就可以同时获得多个父类的所有功能。

1.MixIn

一般来说,继承的关系是主线单一继承下来的,如:

Animal -> Bird -> Bat

但是如果要加入其它额外的属性和方法,可以通过多重继承来实现,这种方式称为MixIn。

MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系。

2.Python自带的很多库也使用了MixIn。

举个例子,Python自带了TCPServer和UDPServer这两类网络服务,而要同时服务多个用户就必须使用多进程或多线程模型,这两种模型由ForkingMixIn和ThreadingMixIn提供。通过组合,我们就可以创造出合适的服务来。

2017/3/5

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

你可能感兴趣的文章
nginx在响应request header时候带下划线的需要开启的选项
查看>>
工(程师)欲善其事,必先利其(编译)器——《Android Studio实战——快速、高效地构建Android应用》...
查看>>
Linux下DHCP服务器配置
查看>>
css相对定位和绝对定位
查看>>
计算机进阶推荐书单
查看>>
MEGAMALL OpenCart 自适应主题模板 ABC-0692
查看>>
6.1 压缩打包介绍;6.2 gzip压缩工具;6.3 bzip2压缩工具;6.4 xz压缩工具
查看>>
TCP 协议之三次握手(一)
查看>>
【Filter 页面重定向循环】写一个过滤器造成的页面重定向循环的问题
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
mybatis学习笔记之学习目录(1)
查看>>
我的IDEA配置
查看>>
myeclipse显示行号
查看>>
Pro ASP.NET Core MVC 第6版 第二章(前半章)
查看>>
编写高性能的java程序
查看>>
C# 文件操作封装类(删除,移动,复制,重命名)
查看>>
Spring 的配置详解
查看>>
Spark之命令
查看>>
linux已经不存在惊群现象
查看>>
上位机和底层逻辑的解耦
查看>>