La Programación Orientada a Objetos, POO por sus siglas, es un paradigma que organiza el código en clases (plantillas) y objetos (instancias de una clase). Dicho de otro modo, es una manera de organizar tu código, de modo más ordenado, a través de objetos y sus características.
- ✅ Ejemplo: un coche puede representarse con una clase, que sería “Coche”, y cada coche específico, por ejemplo la marca, Toyota, Ford, etc., sería un objeto de esa clase.

Esto permite ordenar la información de nuestro código, estructurarla, repetir estructuras si es necesario y facilita ese orden especialmente en proyectos de Python de gran escala.
Conceptos clave de POO en Python
Para ahondar un poco más en este modo de estructurar el código, vamos a ver algunos conceptos clave:
Clases y objetos en Python
Clase
Una clase es un molde para crear objetos.
Objeto
Un objeto es una instancia de una clase.

- ✅ En este caso, la clase es "perro", y el objeto está vacío, pero podrían ser diferentes perros, con sus nombres y características. Si la clase fuese "alumno", el objeto sería cada uno de los niños y niñas de la clase. ¿Más claro con este ejemplo?
Atributos en Python
Los atributos almacenan información en los objetos.

- ✅ En este caso sería: clase 🟰 perro; objeto 🟰 perro número 1; atributos🟰 nombre, raza...
Métodos en Python
Los métodos son funciones dentro de una clase. Siguiendo con el ejemplo del perro, es algo que el perro puede hacer, por ejemplo ladrar.

- ✅ En este ejemplo el método sería 🟰 a ladrar, es decir, una función que existe dentro de la clase. Y print (el resultado), sería, por tanto, 🟰 "guau".
📖 ¿Sabes lo que es un diccionario en Python? Esta forma de almacenar los datos utilizando los pares clave-valor es uno de los pilares fundamentales de este lenguaje de programación. ¡Echa un vistazo a nuestro artículo para completar tus nociones básicas sobre Python!
Cómo definir clases y objetos en Python
Una vez que hemos visto estos elementos principales de Python, vamos a ver cómo se implementan. Para ello hay que conocer la sintaxis de una clase en Python que, si has prestado atención, ya habrás visto en los ejemplos anteriores. No obstante, vamos a repasarlo una vez más. 👇

- ✅ Vamos a usar la sintaxis "class" para definir el nombre de la clase. Y "def" para los atributos. ¡Veamos mejor un ejemplo real un poco más concreto!

- ✅Ejemplo básico de una clase en el que la clase es 🟰 persona, el objeto es 🟰 persona 1. Y los atributos 🟰 Carlos, 30 años. ¿Mejor así?
Def se utiliza en Python para definir una función, para ello se emplea la sintáxsis "def" y a continuación se añade el nombre del parámetro.
Atributos en Python: Instancia vs. Clase
Ya hemos visto más arriba lo que es una clase y sus atributos, ahora vamos a ver qué diferencia hay entre los atributos de instancia y los de clase. ¡La cosa se complica! Pero con el paso a paso, seguro que te queda claro al final.
Atributos de instancia
Los atributos de instancia son individuales, de cada objeto y se identifican con __init__ y self.

- ✅En este caso, el ejemplo sería el color de uno de los coches.
Atributos de clase
Por su parte, los atributos de clase son compartidos por todos los objetos de la clase.

- ✅ En el caso particular del coche podría ser, por ejemplo, que tienen 4 ruedas. Sería un atributo de toda la clase, pues todos los coches tienen ese número de ruedas.

Así, si queremos obtener el resultado, "print", será común a toda la clase "Coche".
☝️ Te interesa: los bucles Python facilitan la gestión de grandes cantidades de datos, ya que permiten ejecutar repetidamente un bloque de código. ¡Aprende más sobre ellos!
Métodos en Python: cómo definir funciones en clases
Definir una función en una clase sirve para crear un método que "afecta" a la clase en su conjunto, y no de forma individual a sus componentes. Pueden ser de instancia o con parámetros.
Métodos de instancia
Un método de instancia utiliza self para acceder o modificar atributos de un objeto, a otros métodos o "modificar el estado de la clase" 1.

- ✅ Recordemos que un método es una función dentro de una clase, en este caso el perro ladra y hace guau. La clase es el perro, y el método de instancia es la función o acción de ladrar.
Métodos con parámetros
En el caso de los métodos con parámetros, se añade un parámetro a la ecuación, lo que permite una mayor flexibilidad de la clase.

- ✅ En este caso, el método es saludar, pero no aplica a toda la clase, sino, por ejemplo al parámetro nombre. El resultado es "Hola, Ana".
Pilares de la Programación Orientada a Objetos
Los pilares de la Programación Orientada a Objetos son cuatro: encapsulamiento, herencia, poliformismo y abstracción. Vamos a ver con ejemplos también cada uno de ellos.
1️⃣ Encapsulamiento
Los datos de una clase pueden estar restringidos o ser privados para evitar un acceso indebido a los mismos. Se especifica como "atributo privado".

- ✅ En este ejemplo, consistiría en mantener de forma privada el saldo de una cuenta bancaria, por una cuestión de privacidad.
2️⃣ Herencia
Permite que una clase herede atributos y métodos de otra. O dicho de otro modo, nos permite crear una clase que se base o utilice los atributos de otra clase que ya existe.

- ✅ En el ejemplo del sonido en la clase animal, que se puede aplicar a la clase perro como guau.
3️⃣ Polimorfismo
Cuando un mismo método o función dentro de una clase se comporta de manera diferente en distintas clases.

- ✅ Siguiendo con el ejemplo de la clase animal, el método sonido será diferente en la clase perro 🟰 guau, que en la clase gato 🟰 miau.
4️⃣ Abstracción
Por último, la abstracción consiste en ocultar detalles internos, por un lado para protegerlos si es necesario y, por otro, para simplificar la programación.
❌ Para anticiparte a los errores en Python, aprende qué son las excepciones Python y cómo gestionarlas. ¡Te salvará de más de un apuro!
Ejemplos prácticos de POO en Python
A continuación, puedes ver cómo se han aplicado los conceptos que hemos ido definiendo a lo largo de estas líneas en un ejemplo práctico único bastante representativo: una simulación de una cuenta bancaria.

La Programación Orientada a Objetos en Python, o POO en Python puede resultar compleja, especialmente si es tu primer contacto con este lenguaje de programación. ¡Pero también es una parte fundamental de la teoría!
Esta guía básica es solo la punta del iceberg y, si quieres seguir avanzando por tu cuenta, es posible que en algún momento necesitas ayuda experta de un/a profesional. ¡No lo dudes para seguir aprendiendo! Python es una de las claves del futuro de la programación.
Bibliografía
- 📙 tipos de métodos. (s/f). El Libro De Python. Recuperado el 17 de abril de 2025, de https://ellibrodepython.com/metodos-estaticos-clase-python