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.
Fragmento de código que muestra una clase Python “Coche” con atributos para “marca” y “modelo”, y una instancia que imprime la marca “Toyota”.

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.

Los mejores profes de Python que están disponibles
Jose
5
5 (5 opiniones)
Jose
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jacob
5
5 (5 opiniones)
Jacob
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Emmanuel ramiro
5
5 (9 opiniones)
Emmanuel ramiro
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Dylan
5
5 (7 opiniones)
Dylan
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Karla
5
5 (3 opiniones)
Karla
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jherom
5
5 (1 opiniones)
Jherom
₡10000
/₡/h
Gift icon
¡1a clase gratis!
Diego
5
5 (1 opiniones)
Diego
₡7000
/₡/h
Gift icon
¡1a clase gratis!
Luis miguel
5
5 (1 opiniones)
Luis miguel
₡6800
/₡/h
Gift icon
¡1a clase gratis!
Jose
5
5 (5 opiniones)
Jose
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jacob
5
5 (5 opiniones)
Jacob
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Emmanuel ramiro
5
5 (9 opiniones)
Emmanuel ramiro
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Dylan
5
5 (7 opiniones)
Dylan
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Karla
5
5 (3 opiniones)
Karla
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jherom
5
5 (1 opiniones)
Jherom
₡10000
/₡/h
Gift icon
¡1a clase gratis!
Diego
5
5 (1 opiniones)
Diego
₡7000
/₡/h
Gift icon
¡1a clase gratis!
Luis miguel
5
5 (1 opiniones)
Luis miguel
₡6800
/₡/h
Gift icon
¡1a clase gratis!
Vamos

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.

Fragmento de código que muestra una clase Python “Coche” con atributos para “marca” y “modelo”, y una instancia que imprime la marca “Toyota”.
  • ✅ 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.

Fragmento de código que define una clase Python llamada «Perro» con un método inicializador para establecer el nombre y la raza del perro.
  • ✅ 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.

Fragmento de código Python que define una clase “Perro” con un método “ladra” que imprime «Guau» cuando se llama. Fondo oscuro con sintaxis colorida.Fragmento de código que define una clase Python llamada «Perro» con un método inicializador para establecer el nombre y la raza del perro.
  • ✅ 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. 👇

Fragmento de código Python que define una clase con un método __init__ que inicializa dos atributos: atributo1 y atributo2.
  • ✅ 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!
Fragmento de código Python que define una clase “Persona”, crea una instancia llamada “Carlos” e imprime el atributo name.
  • ✅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í?
code
¿Cómo funciona def en Python?

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.

Fragmento de código Python que define una clase “Coche” con un inicializador para establecer un atributo de instancia para el color.
  • ✅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.

Fragmento de código que define una clase Python «Coche» con un atributo «ruedas» establecido en 4, que indica el número de ruedas.
  • ✅ 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.
Code snippet displaying a Python print function that outputs the number of wheels of a car, showing the result as 4.

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!

Los mejores profes de Python que están disponibles
Jose
5
5 (5 opiniones)
Jose
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jacob
5
5 (5 opiniones)
Jacob
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Emmanuel ramiro
5
5 (9 opiniones)
Emmanuel ramiro
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Dylan
5
5 (7 opiniones)
Dylan
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Karla
5
5 (3 opiniones)
Karla
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jherom
5
5 (1 opiniones)
Jherom
₡10000
/₡/h
Gift icon
¡1a clase gratis!
Diego
5
5 (1 opiniones)
Diego
₡7000
/₡/h
Gift icon
¡1a clase gratis!
Luis miguel
5
5 (1 opiniones)
Luis miguel
₡6800
/₡/h
Gift icon
¡1a clase gratis!
Jose
5
5 (5 opiniones)
Jose
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jacob
5
5 (5 opiniones)
Jacob
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Emmanuel ramiro
5
5 (9 opiniones)
Emmanuel ramiro
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Dylan
5
5 (7 opiniones)
Dylan
₡5000
/₡/h
Gift icon
¡1a clase gratis!
Karla
5
5 (3 opiniones)
Karla
₡5500
/₡/h
Gift icon
¡1a clase gratis!
Jherom
5
5 (1 opiniones)
Jherom
₡10000
/₡/h
Gift icon
¡1a clase gratis!
Diego
5
5 (1 opiniones)
Diego
₡7000
/₡/h
Gift icon
¡1a clase gratis!
Luis miguel
5
5 (1 opiniones)
Luis miguel
₡6800
/₡/h
Gift icon
¡1a clase gratis!
Vamos

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.

Fragmento de código que muestra una clase Python “Perro” con un método “ladra” que imprime «Guau» cuando es llamado.
  • ✅ 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.

Fragmento de código que demuestra una clase Python “Persona” con un método “saludar” para saludar a un usuario por su nombre. Ejemplo de salida para «Ana».
  • ✅ 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".

Fragmento de código que muestra una clase Python `CuentaBancaria` con un atributo privado para el saldo y un método para mostrarlo.
  • ✅ 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.

Fragmento de código que demuestra la herencia de clases en Python: una clase “Animal” y una subclase “Perro”, con un método que devuelve salidas de sonido.
  • ✅ 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.

Fragmento de código que define una clase “Gato” en Python, que devuelve «Miau» cuando se llama al método “sonido” en una lista de animales.
  • ✅ 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.

Fragmento de código de una clase Python para una cuenta bancaria, que incluye métodos para depositar, retirar y mostrar el saldo.

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

  1. 📙 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

¿Te gustó este artículo? ¡Califícalo!

5,00 (1 rating(s))
Loading...

Asun

Traductora y experta SEO. Un buen libro, el sonido del mar, la música en directo, el cine, pintar y escalar son mis pequeños placeres.