day13 迭代器和生成器

# 迭代器和装饰器
# 迭代器:
# 双下方法:很少直接调用的方法。一般情况下,是通过其他语法触发的
# 可迭代的 —— 可迭代协议 含有__iter__的方法(‘__iter__’in dir(数据))
# 可迭代的一定可以被for循环
# 迭代器协议: 含有__iter__和__next__方法
# 迭代器一定是可迭代的,可迭代的通过调用iter()方法就能得到一个迭代器
# 迭代器的特点:
    # 很方便使用,且只能取所有的数据取一次
    # 节省内存空间


# 生成器
# 生成器的本质就是迭代器
# 生成器的表现形式
    # 生成器函数
    # 生成器表达式
# 生成器函数:
    # 含有yield关键字的函数就是生成器函数
    # 特点:
        # 调用函数的之后函数不执行,返回一个生成器
        # 每次调用__next__()方法的时候会取到一个值
        # 直到取完最后一个,再执行next会报错

 

posted @ 2019-03-07 12:55  云川望雨  阅读(101)  评论(0编辑  收藏  举报