Seleccionar página

La programación orientada a objetos (POO) es un paradigma que organiza el código en torno a objetos, que combinan datos (atributos) y comportamientos (métodos).
Python, aunque es un lenguaje multiparadigma, ofrece un soporte muy completo para este estilo de programación.


¿Qué es la Programación Orientada a Objetos?

En la POO, los programas se estructuran usando clases y objetos:

  • Clase: es un molde o plantilla que define las características y comportamientos de un tipo de objeto.
  • Objeto: es una instancia concreta de una clase, con sus propios valores de atributos.

Por ejemplo, si tenemos una clase Perro, cada perro específico (como “Firulais” o “Luna”) sería un objeto diferente.


Creando una clase en Python

En Python, las clases se definen con la palabra clave class:

class Perro:
    # Método inicializador (constructor)
    def __init__(self, nombre, edad):
        self.nombre = nombre  # Atributo de instancia
        self.edad = edad

    # Método (comportamiento)
    def ladrar(self):
        print(f"{self.nombre} dice: ¡Guau!")

    def cumplir_anios(self):
        self.edad += 1
        print(f"{self.nombre} ahora tiene {self.edad} años.")

Creando y usando objetos

Una vez definida la clase, podemos crear objetos (instancias) de ella:

mi_perro = Perro("Firulais", 3)
otro_perro = Perro("Luna", 5)

mi_perro.ladrar()        # Firulais dice: ¡Guau!
otro_perro.cumplir_anios()  # Luna ahora tiene 6 años.

Cada objeto mantiene sus propios datos (nombre, edad), pero comparten los métodos definidos en la clase.


Principios fundamentales de la POO

Encapsulamiento: protege los datos internos del objeto.
Se puede usar el guion bajo _atributo para indicar que un atributo es “privado”.

class CuentaBancaria:
    def __init__(self, saldo):
        self._saldo = saldo  # Atributo protegido

    def depositar(self, cantidad):
        self._saldo += cantidad

    def obtener_saldo(self):
        return self._saldo

Herencia: permite crear nuevas clases basadas en otras, reutilizando código.

class Animal:
    def hablar(self):
        print("El animal hace un sonido")

class Gato(Animal):
    def hablar(self):
        print("El gato dice: miau")

g = Gato()
g.hablar()  # El gato dice: miau

Polimorfismo: diferentes clases pueden definir el mismo método, pero con comportamientos distintos.

animales = [Perro("Toby", 2), Gato()]

for animal in animales:
    animal.hablar()  # Cada uno responde según su clase

Conclusión

La programación orientada a objetos te permite escribir código más organizado, modular y reutilizable.

En Python, su sintaxis sencilla hace que aprender este paradigma sea una excelente manera de mejorar tus habilidades como desarrollador.