我定义了一个listI,它是iterable。如代码所示,迭代器将在调用\uUiter\uu9()方法时返回。但是当我调用它的next()方法四次时,它只打印1四次,而不是1,2,3,4。在
>>> i=[1,2,3,4]
>>> i.__iter__
<method-wrapper '__iter__' of list object at 0x04040378>
>>> i.__iter__()
<listiterator object at 0x040561F0>
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
>>> i.__iter__().next()
1
所以我做了些吹牛的事:)
^{pr2}$有谁能告诉我这两种方法的区别吗?发送大量:)
每次调用
__iter__
时,都会得到一个新的迭代器。在第一个示例中,调用__iter__
四次,因此得到了四个新的迭代器,并且对每个迭代器调用一次next
,因此总是得到第一个值。在第二个例子中,您调用了一次__iter__
,因此您只得到一个迭代器,并且在同一个迭代器上调用next
四次,这样就得到了所有四个值。相关问题 更多 >
编程相关推荐