Python 的回调问题

代码如下:

def parse(self, response):
          for node in response.xpath('//*').extract():
              handlenode(node)
          for url in response.xpath('//a/@href').extract():
              url = urljoin_rfc('http://www.****.com/',url)
              yield scrapy.Request(url, callback=self.parse)
              

这里面的最后一行中的回调函数就是本身的parse.

那么。我现在有一个需求。 就是在第二个for循环中,我需要加一个 count计数。 这个时候,

1. 如果我count定义在当前类变量,然后再for 循环中count++ ,那么回调过后变量count好像会再初始化一次。count++就没有意义。
2. 如果count在parse中定义。那么好像还是有每次回调都重新初始化一次的问题。

请问一下在这里for循环计数要怎么实现呢。
肥皂起泡泡
浏览 555回答 2
2回答

慕桂英4014372

你可以用闭包来实现,大概思路如下: def out(): class data: count = 0 def inner(l): for i in l: data.count += 1 print data.count return inner f = out() f([1,2,3]) f([23,34,3,43,4]) 可以用一个全局的变量来标记

MM们

因为框架对返回的数据有做处理,所以改成闭包的格式显得大动干戈。 这个需求我主要是想通过count的计数来降低调用的频率。现在我用另一个办法来代替,就是用当前时间来参考哈。这就相当于是一个全局变量了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python