第八章、python中的序列、迭代器、生成器及可迭代对象------迭代器(iterator)与生成器(generator)
迪丽瓦拉
2024-02-08 17:13:15
0

8.3 python中的迭代器(iterator)

(1)类中同时出现__iter__()和__next__()方法,类的实例化才是迭代器

       迭代器是支持__iter__()和__next__()方法的对象。

前面我们讲到可以通过函数iter把对象转换为迭代器,也可以手动定义一个迭代器(iterator)。一个类如果具有__iter__()和__next__()方法,则这个类的实例化的类对象地址object是一个迭代器。注意,必须要具有这两个方法,若一个类有__iter__()方法,而没有__next__()方法,这个类实例化后的对象object不是一个迭代器,只能是一个可迭代对象,若object是聚集(collection、集合)特点的可迭代对象,则可以用iter(object)转换为迭代器,否则不能转换。

       __iter__()和__next__()方法的功能作用上面已经描述,这里不再重复,定义的迭代器中应该有停止条件,避免循环无限下去。迭代器可以用iter和next手动迭代取值,也可以用for循环遍历迭代器。下面是一个简单的迭代器例子,可以看出方法 __iter__() 和 __next__()的用法,具体注意事项参见程序中的注释。

相关内容