关于迭代器和生成器

迭代器和生成器
迭代器 - 概念 可迭代的/可迭代对象
   什么是协议---python规定的 : 可迭代类型 和 python语言之间的协议
可迭代协议---内部含有'__iter__'方法的数据类型都是可迭代的
迭代器协议---内部含有__next__和__iter__方法的变量/值都是迭代器
迭代器特点:节省内存,惰性运算,一次性取值,只能能按顺序取
iterable 可迭代的 (整型不可迭代)
dir()
用dir函数查看一个数据类型的方法,在这些方法中,带双下划线的方法叫做'魔法方法','双下方法','内置方法'可以调用但是不需要你直接调用
什么是迭代器?
iterator 迭代器
{'__next__','__setstate__','__length_hint__'}
__length_hint__() 迭代器中有多少个元素
__setstate__() 控制迭代器从哪开始
__next__() 从迭代器中取下一个值
迭代器作用---节省内存,for循环就是利用了迭代器节省内存的特点来对python当中的变量来进行操作
生成器
生成器:程序员通过简单的函数就可以实现
生成器特点:调用之后不执行,需要next来触发这个函数继续向下执行
def finc():
  print('hello')
  yield 1 #含有yield 生成器函数 停止符(记录符)
调用生成器函数,而是返回一个生成器(generator)
所有生成器都是迭代器

猜你喜欢

转载自www.cnblogs.com/qizt/p/9911696.html
今日推荐