Glosario de Python

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

ejemplo.py
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:

Salida
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