Resolver AttributeError: el atributo de objeto 'list' 'append' es de solo lectura

Olorunfemi Akinlua 21 junio 2023
Resolver AttributeError: el atributo de objeto 'list' 'append' es de solo lectura

Podemos ejecutar diferentes operaciones (métodos) en el tipo de datos cuando trabajamos con listas en Python. Debemos entender cómo funcionan para usarlos de manera efectiva y sin errores.

Para usar estos métodos, necesitamos conocer su sintaxis, errores y modo de operación. Uno de estos muchos métodos es el método append(), que nos ayuda a agregar un nuevo elemento a una lista.

Sin embargo, si lo usamos incorrectamente, obtendremos un mensaje de error AttributeError: 'list' object atributo 'append' is read-only.

Este artículo le mostrará qué causa este mensaje de error AttributeError: 'list' object atributo 'append' is read-only y cómo resolverlo.

Use la sintaxis correcta para resolver AttributeError: el atributo de objeto 'list' 'append' es de solo lectura

El mensaje de error AttributeError: 'list' object atributo 'append' is read-only es un AttributeError que significa que una asignación o referencia de atributo falla.

Podemos entender lo que podría estar sucediendo a partir del mensaje de error. El atributo de objeto añadir es de solo lectura y una operación de referencia o asignación está fallando debido a esta condición.

Cuando los datos son de solo lectura, que es agregar, solo se puede acceder a ellos pero no modificarlos. Por lo tanto, en nuestro código hay una expresión que intenta modificar el atributo del objeto 'lista' 'agregar'.

Intentemos replicar el mismo mensaje de error usando un código Python simple.

En este código, creamos una variable, shopList, que contiene una lista de elementos. Luego, otra variable, valor, se une a una cadena, palillo.

Posteriormente, imprime el contenido de shopList. Y finalmente, trató de agregar el enlace valor a la lista shopList.

Código:

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

Producción :

['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

Podemos ver el mensaje de error AttributeError: 'list' object atributo 'append' is read-only que pretendemos solucionar. Por el error, sabemos que la causa del error está presente en la línea 4.

El siguiente código es lo que está presente en la línea 4:

shopList.append = value

Ahora, ¿qué está mal aquí?

El atributo se llama añadir. El código trató de asignar el valor vinculante al método agregar, lo que resultó en errores y excepciones porque no debe reemplazar los métodos en los objetos integrados.

Lo que causó el AttributeError es un SyntaxError sobre cómo usar el método append. La forma correcta de usar el método agregar se puede ver a continuación:

shopList.append(value)

Ahora, reescribamos el mismo código.

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

Producción :

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

Por lo tanto, revisa tu sintaxis cuando te encuentres con un AttributeError porque el mismo error se puede ver con otros métodos como index.

Código:

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

Producción :

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

Esta vez, el error es AttributeError: 'list' object atributo 'index' is read-only en lugar de adjuntar.

Siempre tenga cuidado con su sintaxis.

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

Artículo relacionado - Python Error