码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2019-02-16 13:19:32      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:def   使用   print   ext   list   next   .exe   方法   pytho   

生成器

如果说迭代器是以类为基础的单位产生器,那么生成器(generator)就是以函数为基础的单位产生器。也就是说,迭代器和生成器都是一个值一个值得生产,每迭代一次,只能得到一个值,

所不同的是,迭代器需要在类中定义__iter__和__next__方法,在使用时需要创建迭代器的实例。而生成器是通过一个函数展现的,可以直接调用,

所以从某种意义上来说,生成器在使用上更简洁。


创建称生成器

要定义一个生成器,首先需要定义一个函数,在该函数中对某个集合或迭代器进行迭代,然后使用yield语句产生当前要生成的值,这时函数会被冻结,直到调用生成器的代码继续迭代

下一个值,生成器才会继续执行。

实例:

#定义一个生成器
def mygGenerator():
    numList=[1,2,3,4,5,6,7,8]
    for num in numList:
        #yield 语句会冻结当前函数,并提交当前要生成的值(本例是num)
        yield num
    #对迭代器进行迭代
for num in mygGenerator():
    print(num,end= )

E:\python\python.exe E:/progect/untitled1/untitled1/urls.py
1 2 3 4 5 6 7 8 

 

生成器

标签:def   使用   print   ext   list   next   .exe   方法   pytho   

原文地址:https://www.cnblogs.com/effortsing/p/10387397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!