闭包.迭代器,生成器

def outer():
            a = 10 # 很耗时
            def inner():
                print(a)
            return inner
        outer()()
        outer()()
        ret = outer()
        ret()
        ret()
View Code

闭包的好处:

保护变量,可以让一个变量常驻内存.

迭代器 特点:惰性机制 只 能向前 节省内存

__iter__()可迭代对象  获取迭代器

__next__() 迭代器 

for 循环内部就是迭代器

list = []
it = list.__iter__()
while 1 :
    try:
        it.__index)__()
    except StopIteration:
         break
View Code

Iterable:可迭代的

Iterator:迭代器

 

生成器: 特点 惰性机制 只能向前 节省内存

和普通函数没有区别,里面有yield的函数就是生成器函数

生成器函数在执行的时候,,默认不会执行函数体返回生成器

通过生成器的__next__()分段执行这个函数

send()给上一个yield传值,不能在开头(没有上一个yield),不能在结尾,结尾不能用yield

生成器表达(结果 for循环  条件) 

 

posted @ 2018-08-13 16:29  学习python1234  阅读(79)  评论(0编辑  收藏  举报
levels of contents