Bug report
Bug description:
Defining an interator for a class in a separate class no longer works properly in 3.13. With the following test_iter.py:
classlist2(list):
def__iter__(self):
returnlist2iterator(self)
classlist2iterator:
def__init__(self, X):
self._X=Xself._pointer=-1def__next__(self):
self._pointer+=1ifself._pointer==len(self._X):
self._pointer=-1raiseStopIterationreturnself._X[self._pointer]
With Python 3.13.1 one gets:
>>>fromtest_iterimportlist2>>>X=list2([1,2,3])
>>> [xforxinX]
Traceback (mostrecentcalllast):
File"<python-input-2>", line1, in<module>
[xforxinX]
^TypeError: 'list2iterator'objectisnotiterable
With Python 3.12.7 it works:
>>>fromtest_iterimportlist2>>>X=list2([1,2,3])
>>> [xforxinX]
[1, 2, 3]
Bisected to bcc7227e
CPython versions tested on:
3.12, 3.13
Operating systems tested on:
Linux
Linked PRs
Bug report
Bug description:
Defining an interator for a class in a separate class no longer works properly in 3.13. With the following
test_iter.py:With Python 3.13.1 one gets:
With Python 3.12.7 it works:
Bisected to bcc7227e
CPython versions tested on:
3.12, 3.13
Operating systems tested on:
Linux
Linked PRs