一、迭代器:
Python可迭代对象与迭代器(islice())关系:
可迭代对象:
只要定义了__iter__方法,就可以认为是该对象就是迭代对象,但迭代对象不一定都有__iter__的定义;也有只定义了__getitem__情况;
迭代器:
任何对象只要定义了__iter__方法和__next__方法,它就是一个迭代器;迭代器一定是可迭代对象;迭代器可用next()来调用;迭代器节省内存;
例程:
from itertools import islice
class Fib:# "获取斐波那契数列"def __init__(self):self.prev = 0self.curr = 1def __iter__(self)return selfdef __next__(self)value = self.currself.curr += self.prevself.prev = valuereturn value
f = Fib()
print(list(islice(f,0,10)))
输出:
[1,1,2,3,5,8,13,21,34,55]
二、生成器:
1、生成器的原理:
使用yield关键字的函数来定义一个生成器;生成器