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
.....