码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记__7.3章 多重继承

时间:2018-05-16 10:52:10      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:编程语言   Python   

# 这是学习廖雪峰老师python教程的学习笔记


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

1.1Mixin

在设计类的继承关系时,通常,主线都是单一继承下来的。

通过多重继承,而给某个类添加额外功能。这种设计我们称为Mixin

  1. 定义 Mammal

class Mammal(Object):

    pass

  1. 定义 Runable

class Runnable(object):

    def run(self):

        print('Running...')

  1. 定义 Dog类,多重继承

class Dog(Mammal, Runnable):

    pass

注:

  • 为了更好地看出继承关系,我们可以把Runnable改为RunnableMixIn

  • 只允许单一继承的语言(如Java)不能使用MixIn的设计

 

1.2Mixin 事例

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

 

  • ForkingMinin:多进程

  • ThreadingMaxin:多线程

 

  1. 编写一个多进程模式的TCP服务

class MyTCPServer(TCPServer, ForkingMixIn):

    pass

  1. 编写一个多线程模式的UDP服务

class MyUDPServer(UDPServer, ThreadingMixIn):

    pass

  1. 协程模型

class MyTCPServer(TCPServer, CoroutineMixIn):

    pass


Python学习笔记__7.3章 多重继承

标签:编程语言   Python   

原文地址:http://blog.51cto.com/12758568/2116783

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