5.程序执行g.send(7),程序会从yield关键字那一行继续向下运行,send会把7这个值赋值给res变量

6.由于send方法中包含next()方法,所以程序会继续向下运行执行print方法,然后再次进入while循环

 

7.程序执行再次遇到yield关键字,yield会返回后面的值后,程序再次暂停,直到再次调用next方法或send方法。

这就结束了,说一下,为什么用这个生成器,是因为如果用List的话,会占用更大的空间,比如说取0,1,2,3,4,5,6............1000

你可能会这样:论文网

for n in range(1000):

    a=n

这个时候range(1000)就默认生成一个含有1000个数的list了,所以很占内存。

这个时候你可以用刚才的yield组合成生成器进行实现,也可以用xrange(1000)这个生成器实现

yield组合:

def foo(num):

    print("starting...")

    while num<10:

        num=num+1

        yield num

for n in foo(0):

    print(n)

输出:

 

starting...

 xrange(1000):

for n in xrange(1000):

    a=n

 其中要注意的是python3时已经没有xrange()了,在python3中,range()就是xrange()了,你可以在python3中查看range()的类型,它已经是个<class 'range'>了,而不是一个list了,毕竟这个是需要优化的。 

上一篇:自带白胡子的绅士喵绅士
下一篇:阿里云ntp服务器地址和端口

中学数学教学中的模型思想调查问卷表

中小学五步拳课程调查问卷

影响高中生数学建模能力调查问卷表

新疆中学微课适应性调查问卷

初中数学课堂提问有效性研究的调查问卷

体育游戏在高级中学体育教学的运用问卷调查

高中篮球教学现状学生调查问卷

摩羯座运势2022,摩羯座...

试析多元智能理论茬体育...

湖南长沙市生育津贴政策...

基于中频信号的家用治疗...

浅谈岗位廉洁教育的方法与途径【3858字】

羟肟类萃取剂对嗜酸氧化...

PF--1415反击式破碎机箱体设计开题报告

信息技术茬旅游专业教學...

浅议体态律动在小学音乐课堂教学中的运用

旅游英语推进邢台市旅游...