为了账号安全,请及时绑定邮箱和手机立即绑定

Python 的回调问题

Python 的回调问题

肥皂起泡泡 2019-02-20 21:11:08
代码如下: 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循环计数要怎么实现呢。
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

  1. 你可以用闭包来实现,大概思路如下:

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]) 
  1. 可以用一个全局的变量来标记

查看完整回答
反对 回复 2019-03-04
?
MM们

TA贡献1886条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 554 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信