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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记__7.3章 多重继承相关的知识,希望对你有一定的参考价值。

# 这是学习廖雪峰老师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学习笔记

Python学习笔记__3.1章 切片

Python学习笔记__7.2章 使用@property

Python学习笔记__14章 virtualenv

Python学习笔记__8章错误调试和测试__8.1章错误处理

Python学习笔记__3.5章 迭代器