python yield 求解

def open_spider(self, spider, start_requests=None, close_if_idle=True):

        print 'engine.open_spider   open_spider()'

        assert self.has_capacity(), "No free spider slots when opening %r" % \

            spider.name

        log.msg("Spider opened", spider=spider)

        nextcall = CallLaterOnce(self._next_request, spider)

        scheduler = self.scheduler_cls.from_settings(self.settings)

        slot = Slot(start_requests or (), close_if_idle, nextcall, scheduler)

        self.slots[spider] = slot

        yield scheduler.open(spider)

        print 'first yield  ======'

        yield self.scraper.open_spider(spider)

        print 'second yield  ======'

        stats.open_spider(spider)

        yield send_catch_log_deferred(signals.spider_opened, spider=spider)

        print 'third yield  ======'

        slot.nextcall.schedule()


open_spider(-----)
这个时候会执行open_spider()函数体吗 ?
请先 登录 后评论

3 个回答

桔沫
def open_spider(self, spider, start_requests=None, close_if_idle=True):

        print 'engine.open_spider   open_spider()'

        assert self.has_capacity(), "No free spider slots when opening %r" % \

            spider.name

        log.msg("Spider opened", spider=spider)

        nextcall = CallLaterOnce(self._next_request, spider)

        scheduler = self.scheduler_cls.from_settings(self.settings)

        slot = Slot(start_requests or (), close_if_idle, nextcall, scheduler)

        self.slots[spider] = slot

        yield scheduler.open(spider)

        print 'first yield  ======'

        yield self.scraper.open_spider(spider)

        print 'second yield  ======'

        stats.open_spider(spider)

        yield send_catch_log_deferred(signals.spider_opened, spider=spider)

        print 'third yield  ======'

        slot.nextcall.schedule()


open_spider(-----)
这个时候会执行open_spider()函数体吗 ?
请先 登录 后评论
樱桃小铺
刚学到yield, 昨天才成功写出个全排列和A(n,k)的函数,目测只能帮你顶了
请先 登录 后评论
韩东阳
不会调用到,因为python首先会做语法检查、编译等过程,在这个过程中他会把open_spider(-----) 中的-----当成变量(因为你没有加引号)[s:弹]
请先 登录 后评论
  • 3 关注
  • 0 收藏,640 浏览
  • 鹿妍晗 提出于 2021-03-06 22:32

相似问题