Python生成器

系统 1430 0

什么是生产器

利用迭代器,我们可以每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生产下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法。即生成器(gennerator)。 生成器是一类特殊的迭代器

创建生成器的方法 1:将列表生成器 [ ] 改为()

代码:

            
              nums = [x*2 for  x in range(10)]
print(nums)

nums = (x * 2 for x in  range(10))
print(nums)
            
          

创建生成器的方法 2 :是用yield创建生成器

 

            
              def creat_fobo(all_num):
    current_num = 0
    a,b = 0,1
    while current_num <= all_num:
        # 使用yield关键字
        ret = yield a
        print(">>>ret>>>",ret)
        a,b = b ,a+b
        current_num += 1

            
          

使用gevent完成多任务的实现 (携程)

            
              def show_spawn(current_name):
    for i in range(10):
        print(current_name, i)
        time.sleep(random.random())


gevent.joinall([
    gevent.spawn(show_spawn, "jack"),
    gevent.spawn(show_spawn, "tom")
])

            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论