Acabo de empezar a aprender Python y estoy leyendo sobre clases.problemas con el método __next__ en python
este es el código que había escrito para una clase simple iterable:
class maths:
def __init__(self,x):
self.a=x
def __iter__(self):
self.b=0
return self
def next(self):
if self.b <= self.a:
self.b = self.b+1
return self.b-1
else:
raise StopIteration
x=maths(5)
for l in x:
print l
para el método next() cuando usé el __next__
(auto):
se muestra el siguiente error
Traceback (most recent call last):
File "class.py", line 20, in <module>
for l in x:
TypeError: instance has no next() method
¿Puede alguien elucidar sobre este comportamiento. Vi un ejemplo en el libro de buceo en python 3 por Mark Pilgrim que utilizó el método __next__
. incluso el ejemplo no se ejecutó en mi intérprete. ¡Gracias por tomarse su tiempo libre para ayudarme!
relacionadas: [no hay función next() en un generador de rendimiento en Python 3] (https://stackoverflow.com/questions/12274606/theres -no-next-function-in-a-yield-generator-in-python-3) – user2314737