Python 为什么使一个类iterable产生这个输出?

Python 为什么使一个类iterable产生这个输出?,python,iterable,Python,Iterable,可能重复: 我得到输出: 0 1 2 3 4 5 6 7 8 ..... 在类b的实例上迭代,会发出整数。为什么呢 (查看时遇到上述程序),因为for循环是为定义\uuuuu getitem\uuuuuuu但不定义\uuuuu iter\uuuuuu的对象实现的,方法是将连续索引传递给对象的\uuu getitem\uuuuuuu方法。看见(IIUC下真正发生的事情有点复杂:如果对象不提供\uuu iter\uuuu,则对对象调用iter,而iter返回的迭代器调用底层对象的\uu geti

可能重复:

我得到输出:

0
1
2
3
4
5
6
7
8
.....
在类b的实例上迭代,会发出整数。为什么呢


(查看时遇到上述程序)

,因为for循环是为定义
\uuuuu getitem\uuuuuuu
但不定义
\uuuuu iter\uuuuuu
的对象实现的,方法是将连续索引传递给对象的
\uuu getitem\uuuuuuu
方法。看见(IIUC下真正发生的事情有点复杂:如果对象不提供
\uuu iter\uuuu
,则对对象调用
iter
,而
iter
返回的迭代器调用底层对象的
\uu getitem\uu

为什么你发布了一个与你链接的问题完全相同的副本,并且已经在那里得到了完美的回答?@Rob在那篇文章中,我很难弄清楚为什么会输出整数。事后看来,我应该在发布这个问题之前先看看getitem的语义
0
1
2
3
4
5
6
7
8
.....