Python 迭代器和可迭代对象的区别?
社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
可迭代对象(iterable):实现了 __iter__()(返回迭代器)或 __getitem__(旧式)的对象,可用 for 遍历,如 list/dict/str/文件;迭代器(iterator):实现了 __iter__ 和 __next__()(返回下一个元素,耗尽抛 StopIteration)的对象,一次性的。关系:for x in obj 内部调用 iter(obj) 拿迭代器再不断 next()。自定义迭代器:类实现 __iter__(return self)和 __next__。判断:isinstance(x, collections.abc.Iterable/Iterator)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。