python 可迭代对象与迭代器

构建可迭代的对象和迭代器时经常会出现错误, 原因是混淆了二者。 要知道, 可迭代的对象有个 __iter__ 方法, 每次都实例化一个新的迭代器; 而迭代器要实现 __next__ 方法, 返回单个元素, 此外还要实现__iter__ 方法, 返回迭代器本身。

因此, 迭代器可以迭代, 但是可迭代的对象不是迭代器。

比如字符串“hello world”是可迭代对象,对字符串调用iter方法(it = iter("hello world"))会返回一个迭代器 it, 迭代器it有__iter__方法和__next__方法,__next__方法放回下一个元素,__iter__方法返回迭代器本身。

猜你喜欢

转载自www.cnblogs.com/buxizhizhoum/p/8983976.html