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.
Verwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung
