El objeto NoneType no tiene ningún atributo añadido en Python

Salman Mehmood 21 junio 2023
El objeto NoneType no tiene ningún atributo añadido en Python

Aprenderemos, con esta explicación, sobre el error NoneType y veremos qué motivos pueden ser para obtener este error. También aprenderemos cómo corregir este error en Python.

Solucione el error AttributeError: NoneType Object Has No Attribute Append en Python

Comencemos creando una lista llamada product_list y agregando algunos elementos dentro de esta lista, luego agregue un elemento más. Si verificamos los elementos, funciona correctamente, pero si asignamos Ninguno a product_list y luego intentamos agregar un elemento dentro de esta lista, arroja un error de tipo Ninguno.

>>> product_list=['x1','x2']
>>> product_list.append('x3')
>>> product_list
['x1', 'x2', 'x3']
>>> product_list=None
>>> product_list.append('x4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'append'

Esto se debe a que product_list es NoneType, por lo que no podemos acceder a este objeto para agregar el elemento, y podemos verificar este tipo de objeto usando el siguiente comando.

>>> type(product_list)
<class 'NoneType'>

Puede haber muchas razones para obtener este error. Uno de ellos es cuando intenta agregar un elemento dentro de la lista y almacenarlo en esa variable de lista en la que está agregando un nuevo elemento.

Para que la próxima vez que intente agregar un nuevo elemento, arroje un error que sería un error de tipo Ninguno.

>>> product_list=product_list.append('x3')
>>> product_list.append('x4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'append'

Un atributo puede ser diferente no solo anexado, sino que también podemos obtener este error al acceder a otro objeto. Si recibimos este error (el objeto ‘NoneType’ no tiene el atributo ‘xyz’), el atributo ‘xyz’ no existe en un objeto.

Podemos comprobar mediante dir() si el objeto al que intentamos acceder existe o no. El atributo append() no existe dentro de esta lista.

>>> dir(product_list)
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

Por alguna razón, en Python, obtienes un AttributeError; puede volver a verificar la documentación oficial para asegurarse de que lo que está tratando de hacer es algo que existe. A veces, al escribir un script de Python, eso podría estar en contra de las reglas de Python; es por eso que obtenemos este tipo de error.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Python Error