经常在pyhton中看到以mixin结尾的类名,它是什么意思,它有什么作用?
# 基类
class Animal(object):
pass
# 大类:
class Mammal(Animal):
pass
class Bird(Animal):
pass
# 混入类
class RunMixin(object):
def run(self):
print('Running...')
class FlyMixin(object):
def fly(self):
print('Flying...')
# 各种动物:
class Dog(Mammal, RunMixin):
pass
class Bat(Mammal, FlyMixin):
pass
class Parrot(Bird, FlyMixin):
pass
class Ostrich(Bird, RunMixin):
pass# 比如,编写一个多进程模式的TCP服务,定义如下:
class MyTCPServer(TCPServer, ForkingMixin):
pass
# 编写一个多线程模式的UDP服务,定义如下:
class MyUDPServer(UDPServer, ThreadingMixin):
pass
# 如果你打算搞一个更先进的协程模型,可以编写一个CoroutineMixin:
class MyTCPServer(TCPServer, CoroutineMixin):
pass