super在python 2.7和Python3中的使用

   

重写是继承机制中的重要内容,对于构造方法尤为重要。构造方法用来初始化新建对象的状态,大多数子类不仅要有自己的初始化代码,还要拥有超类的初始化代码。
如果一个类的构造方法被重写,那么就需要调用超类的构造方法,否则对象可能不会被正确的初始化–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)

 

posted @ 2020-12-01 22:45  dayu2020  阅读(221)  评论(0)    收藏  举报