Lingua-e
Python

¿Qué significa AttributeError?

← Errores

Un AttributeError se lanza en Python cuando intentas acceder o llamar a un atributo (una propiedad o método) que no existe en un objeto. Generalmente significa que el objeto no es del tipo esperado, o que el atributo nunca fue definido.

Por qué ocurre

  • Acceder a un atributo que nunca fue definido en __init__ o en el cuerpo de la clase.
  • Llamar a un método que no existe en ese tipo particular (por ejemplo .sort() sobre una tupla).
  • Una variable contiene None en lugar del objeto esperado.
  • Error tipográfico en el nombre del atributo.

Ejemplos

Python

Código que causa el error

class User:
    def __init__(self, name):
        self.name = name

user = User("Alice")
print(user.email)

Error en la terminal

Traceback (most recent call last):
  File "app.py", line 6, in <module>
    print(user.email)
AttributeError: 'User' object has no attribute 'email'

Cómo solucionarlo

Usa hasattr(obj, 'attr') o getattr(obj, 'attr', default) para verificar de forma segura. Asegúrate de que todos los atributos estén inicializados en __init__. Si la variable podría ser None, agrega una verificación de None antes de acceder a cualquier atributo.

Código corregido

class User:
    def __init__(self, name, email=None):
        self.name = name
        self.email = email

user = User("Alice", email="alice@example.com")
print(user.email)  # alice@example.com

# Or check first:
print(getattr(user, "email", "not set"))

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis