重写是继承机制中的重要内容,对于构造方法尤为重要。构造方法用来初始化新建对象的状态,大多数子类不仅要有自己的初始化代码,还要拥有超类的初始化代码。
如果一个类的构造方法被重写,那么就需要调用超类的构造方法,否则对象可能不会被正确的初始化–Python基础教程将上述思想进行实践.
超类super
在pycharm开发环境,在python2中使用super ,必须把子类加入括号内,
super(bidView,self)
class bidView(ListAPIView,CreateAPIView): queryset = models.BidRecord.objects.filter() serializer_class = bidViewSerializer # 过滤,重新get_querset def get_queryset(self): item_id=self.request.query_params.get('item_id') return self.queryset.filter(item_id=item_id) def get(self,request,*args,**kwargs): reponse=super(bidView,self).get(request,*args,**kwargs)
在Python3环境,直接写super(),
class bidView(ListAPIView,CreateAPIView): queryset = models.BidRecord.objects.filter() serializer_class = bidViewSerializer # 过滤,重新get_querset def get_queryset(self): item_id=self.request.query_params.get('item_id') return self.queryset.filter(item_id=item_id) def get(self,request,*args,**kwargs): reponse=super().get(request,*args,**kwargs)