一、迭代器(类级别)
迭代器的作用是:遍历访问对象的数据元素。
实现方式:一个类只要实现了 __iter__() 函数,那他创建出来的对象就是一个可迭代对象。而实现了__iter__()和__next__()函数的对象就是迭代器。迭代器的遍历过程实际就是重复调用next()函数。如果遍历到终点,就会抛出StopIteration异常。
一些应用: for循环
迭代器的好处:
class Fib:
def __init__(self,n):
self.prev = 0
self.cur = 1
self.n = n
print(self.n)
def __iter__(self):
return self
def __next__(self):
if self.n>0:
value = self.cur
self.cur = self.cur + self.prev
self.prev = value
self.n-=1
return value
else:
raise StopIteration()
f = Fib(10)
for item in f:
print(item)
二、生成器(函数级别)
实现了yield关键字的函数,该关键字是封装了迭代器的概念,每次调用时,都会在yield处暂停和返回。
三、装饰器
函数封装