标签:style blog class code java ext
迭代器和和生成器都是容器对象。它们之间的关系是,生成器是一种特殊的迭代器。所以,先从迭代器入手。
迭代器:
1 class MyIteration(object): 2 """docstring for MyIteration""" 3 def __init__(self, setp): 4 self.step = step 5 6 def next(self): 7 8 if self.step == 0 : 9 raise StopIteration 10 self.step -= 1 11 return self.step 12 13 def __iter__(self): 14 return self
生成器:
生成器是一个特殊的迭代器,所以,也是有迭代器的特性。具有next()和__iter__()方法。不过,next()返回的是,yield指令放回的值。__iter__()方法,返回的是一个生产器对象。
与列表推导式极其相似,只是[]被换成了()。
总结:
迭代器和生成器是python的两个很独特的容器对象。凸显了python的一个思想:“代码足够简单,而不是数据”。python提倡的简洁代码形式,生成器和迭代器都可以简单的几行代码,而操作一个负载的数据结构。
算法和数据的结构的实现,也应此变得简单。有空的话,我将用python来写写一些算法的实现。
标签:style blog class code java ext
原文地址:http://www.cnblogs.com/chengxuyuanxiaoye/p/3708628.html