标签:span 函数 移除 logs 生成 div ges 技术 __next__
函数中有yield的就是生成器函数,执行生成器函数得到一个生成器,生成器具备生成某些东西的能力
yield具有返回值,退出函数体,保留进度的功能,下次调用__next__功能继续从当前位置开始执行
生成器函数的产物
python2.7中的xrange就是一个生成器函数,但是在3.6中已经被移除
#!/usr/bin env python # -*- coding:utf-8 -*- # python 2.7 print(range(10)) print(xrange(10)) ‘‘‘ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] xrange(10) ‘‘‘
其意义在于:range(10)会在内存中一次性生成10个元素,而xrange(10)却得到一个生成器,在需要用的时候再生成某个元素,节约内存
def xrange(n): print(‘start‘) start = 0 while start < n: yield start start += 1 obj = xrange(5) n1 = obj.__next__() n2 = obj.__next__() n3 = obj.__next__() n4 = obj.__next__() n5 = obj.__next__() n6 = obj.__next__() #n7 = obj.__next__() print(n1, n2, n3, n4, n5, n6)
标签:span 函数 移除 logs 生成 div ges 技术 __next__
原文地址:http://www.cnblogs.com/wuwen19940508/p/6947603.html