python的迭代器和生成器

在python中,大多数容器对象都使用for来进行遍历。

那么啥是迭代器呢?

百度百科里面说:迭代器是一种对象,它能够用来遍历容器对象的所有元素,每个迭代器对象代表着容器中一个确定的地址。

python中的迭代器不仅仅可以迭代序列类型,还可以迭代非序列类型。包括用户定义的对象。

迭代器的用法在python中普遍而且统一。for语句在容器对象中调用iter()函数,这个函数会返回一个 定义了next()方法的迭代器对象。它在容器中逐一访问元素,没有后续元素,next()就会抛出一个异常,告知for循环结束。

这样的话就很好的可以给自己的类定义一个迭代器了。

比如:

class className:

def __iter__(self):

return self

def next(self):

…….

生成器:

生成器是这样一个函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变

生成器是创建迭代器的简单而强大的工具。

需要返回数据时候使用yield语句。

每次调用next()时,生成器回复它脱离的位置。

posted on 2012-07-13 16:26  很多不懂呀。。  阅读(172)  评论(0编辑  收藏  举报

导航