正规手机网站怎么做,钓鱼软件生成器,永州市住房和城乡建设厅网站,wordpress 思维导图转载注明#xff0c;本文链接#xff1a;http://www.bianbingdang.com/article_detail/167.html# MixIn和继承的关系面向对象三大特征#xff0c;继承、封装、多态。第一次看到MixIn的时候#xff0c;弄不懂这个和继承有什么关系/区别。首先#xff0c;继承是父亲和儿子的…转载注明本文链接http://www.bianbingdang.com/article_detail/167.html# MixIn和继承的关系面向对象三大特征继承、封装、多态。第一次看到MixIn的时候弄不懂这个和继承有什么关系/区别。首先继承是父亲和儿子的关系而python minxin是混入的意思。虽然MinIn子类可以使用父类的方法但这并不是一种继承的关系而是父类为子类提供了一种可用的方法。# 继承的诟病子类、父类继承关系过多会导致思维上的混乱比如我们的父类派生出很多个子类我们会一直考虑继承了XXX如果父类没有这个方法则子类再创造一个方法那么子类这个方法多个地方用到我们又得把它加入到父类才行这样下来并不是很合适。# MixInMixIn的方式则没有那么得拘束例如有个Persion类pythonclass Person():pass这个人需要修电脑但是我不会修怎么办。那我写个修电脑的方法给他那显然不合适。那怎么办刚好这个人有个朋友过来帮帮忙吧。class FriendMixIn():def repair_compute:return Trueclass Person(FriendMixIn):pass那么很快就明白MixIn相当于在原来的基础上锦上添花。他是包含的意思而不是继承的关系。在Python中到处可以看到MixIn的应用。例如Django的DetailView视图函数。class DetailView(SingleObjectTemplateResponseMixin, BaseDetailView):Render a detail view of an object.By default this is a model instance looked up from self.queryset, but theview will support display of *any* object by overriding self.get_object().可以看到DetailView什么也没有干,它首先继承了BaseDetailView它只是提供了视图的方法但是模板从哪里来呢那么使用SingleObjectTemplateResponseMixin来获取模板。可以看得出DetailView和SingleObjectTemplateResponseMixin并没有继承的关系。