0

我有这个代码

class Mother:
        def getList()
            data['list'] = [2,3,4,5]
            data = json.dumps(data)
            return HttpResponse(data, mimetype='application/json', status=200)



class Child(Mother)
      def getList()
          /////////

在新函数中,我想获取列表并进行一些修改,例如减去其他列表并返回相同的 jsonresponse

我怎样才能做到这一点

4

1 回答 1

2

您必须从响应返回部分中抽象出代码的列表生成部分。

Mother 的这段代码虽然不是完全无效的,但也不是可以工作的东西:

return HttpResponse(data, mimetype='application/json', status=200)
return list

在第一个 return 语句之后,Python 不再执行该方法,因此第二个 return 将永远不会运行。

尝试像这样拆分它:

class Mother(object):
    def makeList(self)
        data['list'] = [2,3,4,5]
        data = json.dumps(data)
        return data

    def getList(self)
        data = self.makeList()
        return HttpResponse(data, mimetype='application/json', status=200)

class Child(Mother)
  def makeList(self)
      my_list = super(Child, self).makeList()
      # do something to it
      return my_list

现在在 Mother 对象上有一个makeList方法,它构造实际的列表,并将getList其格式化为 HttpResponse 对象。

在 Child 中,makeList被覆盖,但首先从 Mother 调用版本。之后,您可以进行所需的任何修改,然后将其返回。当您调用child.getList()时,它将使用该新列表,然后将其呈现给 HttpResponse,因为它继承getList自 Mother。

于 2012-11-09T07:39:44.940 回答