Lösen Sie AttributeError: `list`-Objektattribut `append` ist schreibgeschützt

Olorunfemi Akinlua 21 Juni 2023
Lösen Sie AttributeError: `list`-Objektattribut `append` ist schreibgeschützt

Wir können verschiedene Operationen (Methoden) für den Datentyp ausführen, wenn wir mit Listen in Python arbeiten. Wir müssen verstehen, wie sie funktionieren, um sie effektiv und fehlerfrei zu nutzen.

Um diese Methoden verwenden zu können, müssen wir ihre Syntax, Fehler und Funktionsweise kennen. Eine dieser vielen Methoden ist die append()-Methode, die uns hilft, ein neues Element zu einer Liste hinzuzufügen.

Wenn wir es jedoch missbrauchen, erhalten wir die Fehlermeldung AttributeError: 'list' object attribute 'append' is read-only.

Dieser Artikel zeigt Ihnen, was diese Fehlermeldung AttributeError: 'list' object attribute 'append' is read-only verursacht und wie Sie sie lösen können.

Verwenden Sie die richtige Syntax, um AttributeError: 'list' object attribute 'append' is read-only zu lösen

Die Fehlermeldung AttributeError: 'list' object attribute 'append' is read-only ist ein AttributeError, was bedeutet, dass eine Attributreferenz oder -zuweisung fehlschlägt.

Wir können anhand der Fehlermeldung verstehen, was passieren könnte. Das Objektattribut append ist schreibgeschützt, und ein Referenzierungs- oder Zuweisungsvorgang schlägt aufgrund dieser Bedingung fehl.

Wenn Daten schreibgeschützt sind, was append ist, kann auf sie nur zugegriffen, aber nicht geändert werden. Daher gibt es in unserem Code einen Ausdruck, der versucht, das Objektattribut Liste Anhängen zu ändern.

Lassen Sie uns versuchen, dieselbe Fehlermeldung mit einem einfachen Python-Code zu replizieren.

In diesem Code erstellen wir eine Variable, shopList, die eine Liste von Elementen enthält. Dann bindet eine andere Variable, Wert, an eine Zeichenfolge, Zahnstocher.

Danach druckt es den Inhalt von shopList. Und schließlich versuchte es, den verbindlichen Wert an die Liste shopList anzuhängen.

Code:

shopList = ["banana", "orange", "sugar", "salt"]
value = "toothpick"
print(shopList)
shopList.append = value

Ausgang:

['banana', 'orange', 'sugar', 'salt']
Traceback (most recent call last):
  File "c:\Users\akinl\Documents\Python\alt.py", line 4, in <module>
    shopList.append = value
AttributeError: 'list' object attribute 'append' is read-only

Wir sehen die Fehlermeldung AttributeError: 'list' object attribute 'append' is read-only, die wir lösen wollen. Aus dem Fehler wissen wir, dass die Fehlerursache in Zeile 4 vorhanden ist.

Der folgende Code ist das, was in Zeile 4 vorhanden ist:

shopList.append = value

Nun, was ist hier falsch?

Das Attribut heisst append. Der Code hat versucht, der Methode append den bindenden value zuzuweisen, was zu Fehlern und Ausnahmen führte, weil Sie Methoden auf eingebauten Objekten nicht ersetzen sollten.

Ursache des AttributeError ist ein SyntaxError bezüglich der Verwendung der append-Methode. Die korrekte Verwendung der append-Methode ist unten zu sehen:

shopList.append(value)

Lassen Sie uns nun denselben Code neu schreiben.

shopList = ["banana", "orange", "sugar", "salt"]
value = "toothpick"
print(shopList)
shopList.append(value)
print(shopList)

Ausgang:

['banana', 'orange', 'sugar', 'salt']
['banana', 'orange', 'sugar', 'salt', 'toothpick']

Prüfen Sie daher bei einem AttributeError Ihre Syntax, denn derselbe Fehler kann auch bei anderen Methoden wie index auftreten.

Code:

shopList = ["banana", "orange", "sugar", "salt"]
shopList.index = "banana"

Ausgang:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\Python\index.py", line 2, in <module>
    shopList.index = "banana"
AttributeError: 'list' object attribute 'index' is read-only

Diesmal lautet der Fehler AttributeError: 'list' object attribute 'index' is read-only anstelle eines append-Fehlers.

Seien Sie immer vorsichtig mit Ihrer Syntax.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Python Error