def outer(): a = 10 # 很耗时 def inner(): print(a) return inner outer()() outer()() ret = outer() ret() ret()
闭包的好处:
保护变量,可以让一个变量常驻内存.
迭代器 特点:惰性机制 只 能向前 节省内存
__iter__()可迭代对象 获取迭代器
__next__() 迭代器
for 循环内部就是迭代器
list = [] it = list.__iter__() while 1 : try: it.__index)__() except StopIteration: break
Iterable:可迭代的
Iterator:迭代器
生成器: 特点 惰性机制 只能向前 节省内存
和普通函数没有区别,里面有yield的函数就是生成器函数
生成器函数在执行的时候,,默认不会执行函数体返回生成器
通过生成器的__next__()分段执行这个函数
send()给上一个yield传值,不能在开头(没有上一个yield),不能在结尾,结尾不能用yield
生成器表达(结果 for循环 条件)