Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python

Rohan Timalsina 21 junio 2023
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.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - Python Error