类的多重继承和Mixin https://www.cnblogs.com/hiwuchong/p/8531570.htmlhttps://www.cnblogs.com/hiwuchong/p/8531570.html
通过mixin,BasePostsView以及它的子类和PostView具有了CommonMixin类的功能
2个问题 问题1、CommonMixin类是继承哪一个类,因为class CommonMixin(object):是继承object类 问题2、下面两种写法有什么区别 class BasePostsView(CommonMixin,ListView): class BasePostsView(ListView,CommonMixin):
视频里只是一句带过,CommonMixin会mixin进去BasePostsView 第七课-第四节02-升级为Class-based-view
可以看看下面这个代码:
import inspect
class Mixin:
def foo(self, **kwargs):
print('mixin')
super().foo()
class Base:
def foo(self, **kwargs):
print('base')
class A(Mixin, Base):
pass
print(inspect.getmro(A))
class B(Base, Mixin):
pass
print(inspect.getmro(B))
上面的代码需要在Python3下执行,Python2下的代码:
import inspect
class Mixin(object):
def foo(self, **kwargs):
print('mixin')
super().foo()
class Base(object):
def foo(self, **kwargs):
print('base')
class A(Mixin, Base):
pass
print(inspect.getmro(A))
class B(Base, Mixin):
pass
print(inspect.getmro(B))
已经解决