Fix AttributeError: 'generator' Object Has No Attribute 'next' in Python

Rohan Timalsina 21 Juni 2023
Fix AttributeError: 'generator' Object Has No Attribute 'next' in Python

Attribute sind Werte, die sich auf ein Objekt oder eine Klasse beziehen. Der AttributeError wird in Python ausgelöst, wenn Sie ein Attribut eines Objekts aufrufen, dessen Typ von der Methode nicht unterstützt wird.

Die Verwendung der split()-Methode für ein int-Objekt gibt beispielsweise einen AttributeError zurück, weil int-Objekte die split()-Methode nicht unterstützen.

In Python 3 ist keine .next-Methode an den Iterator angehängt. Als Ergebnis erhalten Sie einen AttributeError, wenn Sie versuchen, die .next-Methode auf das generator-Objekt anzuwenden.

In diesem Tutorial lernen Sie, den AttributeError: 'generator' object has no attribute 'next' in Python zu beheben.

Beheben Sie den Fehler AttributeError: 'generator' object has no attribute 'next' in Python

Hier ist ein Beispiel für AttributeError bei Verwendung der yield-Anweisung in 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())

Ausgang:

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'

Wie Sie sehen, gibt es in Zeile 6 einen AttributeError mit dem Code print(seq.next()). Dies liegt daran, dass wir die Methode .next verwendet haben, um das nächste Element vom Iterator zu erhalten.

Die Methode .next wird in Python 3 durch die eingebaute Funktion next() ersetzt. Sie können diesen Fehler mit der Funktion next beheben, wie unten gezeigt.

def get_data(n):
    for i in range(n):
        yield i


a = get_data(20)
for i in range(10):
    print(next(a))

Ausgang:

0
1
2
3
4
5
6
7
8
9

In Python 2 können Sie die Methode .next verwenden, aber Python 3 wirft eine Ausnahme, AttributeError.

Jetzt wissen Sie, wie Sie den Fehler Objekt 'generator' hat kein Attribut 'next' in Python lösen. Wir hoffen, dass Sie diese Lösung hilfreich finden.

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

Verwandter Artikel - Python Error