生成器是由函数+yield关键字创造出来的写法,在特定情况下,可以节省内存
-
生成器函数,在函数中存在yield,这个函数就是生成器函数
def func(): print(1) yield 1 print(2) yield 2
-
生成器对象,执行生成器函数时,会返回一个生成器对象
def func(): print(1) yield 1 print(2) yield 2 print(3) data=func()
注意:执行生成器函数时,函数内部代码不会执行
def func(): print(1) yield 1 #像return,执行到这个位置,不会执行 print(2) yield 2 print(3) yield 3 print(4) #最后通过next(data)会报错,StopIteration data=func() # next(data) # next(data) # next(data) #for循环执行生成器对象,不会报错 for i in data: print(i)
-
数据量大,无法存储,要多少取多少,例:生成300w个随机4位数,并打印
import random def get_random_num(max_count): counter=0 while counter<max_count: #获取4位随机验证码 yield random.randint(1000,9999) counter+=1 data_list=get_random_num(3000000) #使用几个取几个
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)