找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 8372|回复: 2

[求助] python yield 求解

1

主题

1

帖子

0

积分

贫民

积分
0
menshen 发表于 2013-3-20 10:23:55 | 显示全部楼层 |阅读模式
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()函数体吗 ?
回复

使用道具 举报

0

主题

2

帖子

0

积分

贫民

积分
0
fuyunv 发表于 2013-3-20 14:26:40 | 显示全部楼层
刚学到yield, 昨天才成功写出个全排列和A(n,k)的函数,目测只能帮你顶了
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2013-3-20 16:50:30 | 显示全部楼层
不会调用到,因为python首先会做语法检查、编译等过程,在这个过程中他会把open_spider(-----) 中的-----当成变量(因为你没有加引号)[s:弹]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表