Qué es una clase en Python
Una clase describe un tipo de objeto: qué datos guarda y qué acciones puede realizar.
Definición
Una clase es una plantilla. Cada objeto creado a partir de ella es una instancia con sus propios datos, llamados atributos. Dos libros pueden compartir la clase Libro y tener títulos distintos.
El método __init__ prepara cada instancia al crearla, y self representa a la instancia concreta. self.titulo = titulo guarda el dato en el objeto.
Ejemplo
class Libro:
def __init__(self, titulo):
self.titulo = titulo
a = Libro("Python claro")
b = Libro("Datos fáciles")
a.titulo = "Python práctico"
print(a.titulo)
print(b.titulo)Al ejecutarlo, Python muestra:
Python práctico Datos fáciles
Puedes copiar el ejemplo y cambiarlo en el editor Python del navegador: modificar un valor y predecir el resultado es la mejor forma de fijar el concepto.
Error frecuente
Leer un atributo que nunca se creó produce AttributeError. Y no todo necesita una clase: si solo transportas datos, un diccionario puede bastar.
Cómo se diferencia de otros conceptos
Una clase no es un objeto: es la plantilla de la que se crean. Tampoco es siempre la mejor opción: un diccionario transporta datos con menos ceremonia, y una dataclass evita escribir __init__ a mano cuando la clase solo guarda datos. Usa clases cuando datos y comportamiento deban ir juntos.
Preguntas frecuentes
¿Qué es self?
Es el nombre convencional del primer parámetro de un método: representa a la instancia concreta con la que se trabaja. Python lo envía solo al llamar al método.
¿Cuál es la diferencia entre clase y objeto?
La clase describe cómo son los objetos; cada objeto es una instancia con sus propios valores. De Libro puedes crear muchos libros distintos.
Dónde seguir
- Aprende el concepto paso a paso en la lección Crea objetos con datos independientes.
- Función: definición y ejemplo
- Diccionario: definición y ejemplo
- AttributeError: qué significa y cómo corregirlo
- Ver todos los términos del glosario