Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
Los atributos son valores relacionados con un objeto o una clase. El AttributeError
se genera en Python cuando llama a un atributo de un objeto cuyo tipo no es compatible con el método.
Por ejemplo, usar el método split()
en un objeto int devuelve un AttributeError
porque los objetos int no admiten el método split()
.
En Python 3, no hay un método .next
adjunto al iterador. Como resultado, obtendrá un AttributeError
cuando intente utilizar el método .next
en el objeto generador
.
Este tutorial le enseñará a corregir el AttributeError: el objeto 'generator' no tiene atributo 'next'
en Python.
Solucione el error AttributeError: el objeto 'generador' no tiene atributo 'siguiente'
en Python
Aquí hay un ejemplo de AttributeError
al usar la declaración yield
en Python 3.
def get_data(n):
for i in range(n):
yield i
a = get_data(20)
for i in range(10):
print(a.next())
Producción :
Traceback (most recent call last):
File "c:\Users\rhntm\myscript.py", line 6, in <module>
print(a.next())
AttributeError: 'generator' object has no attribute 'next'
Como puede ver, hay un AttributeError
en la línea 6 que contiene el código print(seq.next())
. Es porque hemos usado el método .next
para obtener el siguiente elemento del iterador.
El método .next
se reemplaza por la función integrada next()
en Python 3. Puede corregir este error utilizando la función next
, como se muestra a continuación.
def get_data(n):
for i in range(n):
yield i
a = get_data(20)
for i in range(10):
print(next(a))
Producción :
0
1
2
3
4
5
6
7
8
9
En Python 2, puede usar el método .next
, pero Python 3 lanza una excepción, AttributeError
.
Ahora ya sabes cómo solucionar el error el objeto 'generador' no tiene atributo 'siguiente'
en Python. Esperamos que encuentre útil esta solución.
Artículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python