专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
今天看啥  ›  专栏  ›  马哥Linux运维

一文读懂Python可迭代对象、迭代器和生成器

马哥Linux运维  · 公众号  · 运维  · 2018-05-21 19:59
来源:Python中文社区ID:python-china我们都知道,序列可以迭代。但是,你知道为什么吗? 本文来探讨一下迭代背后的原理。序列可以迭代的原因:iter 函数。解释器需要迭代对象 x 时,会自动调用 iter(x)。内置的 iter 函数有以下作用:(1) 检查对象是否实现了 iter 方法,如果实现了就调用它,获取一个迭代器。 (2) 如果没有实现 iter 方法,但是实现了 getitem 方法,而且其参数是从零开始的索引,Python 会创建一个迭代器,尝试按顺序(从索引 0 开始)获取元素。 (3) 如果前面两步都失败,Python 抛出 TypeError 异常,通常会提示“C objectis not iterable”(C 对象不可迭代),其中 C 是目标对象所属的类。由此我们可以明确知道什么是 可迭代的对象: 使用 iter 内置函数可以 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照