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

応答を返す部分から、コードのリスト生成部分を抽象化する必要があります。

マザーからのこのコードは、完全に無効ではありませんが、機能するものでもありません。

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

最初のreturnステートメントの後、Pythonはメソッドを実行しなくなったため、2番目の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

これでmakeList、Motherオブジェクトに、実際のリストを作成し、getListそれをHttpResponseオブジェクトにフォーマットするメソッドがあります。

子でmakeListは、オーバーライドされますが、母からバージョンを呼び出すことから始まります。その後、必要な変更を加えて、それを返すことができます。を呼び出すと、その新しいリストが使用され、Motherからchild.getList()継承されるため、HttpResponseにレンダリングされます。getList

于 2012-11-09T07:39:44.940 に答える