python继承在重写后调用新url

2024-04-19 22:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,即使在覆盖init函数之后,它仍然调用旧的url,我希望使用新的url内容,而不是如何执行此操作

  import urllib
  import json


  class process():
     def processdata(self):
        for di in results:

           super(processcontent,self).__init__(new_url)
           new_obj  = getcontent.getdata()
           print new_obj
           break



  if __name__ == '__main__':
     url = "someurl"
     p = processcontent(url)
     #print p.getdata()
     p.processdata()

Tags: 函数代码importselfjsonobjurl内容
2条回答

首先,初始化后不应调用__init__,其次,不使用属性self.url,而是使用全局变量url。 由于url不是实属性,因此应使用参数url调用getdata

  import urllib
  import json



  class processcontent(Basecontent,getcontent):
     def processdata(self):
        obj = self.getdata(self.url)
        results = obj["response"]
        for di in results:
           new_url =  di["clusterUrl"]
           new_obj  = self.getdata(new_url)
           print new_obj
           break

  def main():
     url = "someurl"
     p = processcontent(url)
     #print p.getdata()
     p.processdata()


  if __name__ == '__main__':
      main()
 class getcontent(object):
     @classmethod
     def getdata(self):
        response = urllib.urlopen(url)  #  < - module-level variable
        content = json.loads(response.read())
        return content

您正在getdata()方法中引用模块级变量url

相关问题 更多 >