生成器
1. 生成器
生成器的本质就是迭代器
生成器由生成器函数来创建或者通过生成器表达式来创建
2. 生成器函数
生成器函数: 在函数中return换yield, 这个函数就是生成器函数
def func(): yield gen = func() # 函数并不会被执行, 而是创建一个生成器对象
取值:
gen.__next__() # 下一个 gen.send() # 可以给上一个yield传值, 第一次执行不能用send()
特性:
1. 节省内存
2. 惰性机制
3. 只能向前
3. 各种推导式
[结果 for循环 if条件] #列表推导式
key: value for循环 if条件} #字典推导式
{key for循环 if条件} #集合推导式:
4. 生成器表达式(笔试题)
(结果 for循环 if条件)
惰性机制
记录在内存中一段代码.
生成器: 要的时候才能拿到值!!!
惰性机制, 不到最后不会拿值!!!