sábado, 24 de junio de 2023

Programación orientada a objetos en Python: Clases, herencia y métodos mágicos

La programación orientada a objetos (POO) es un paradigma ampliamente utilizado en el mundo de la programación. Python, como lenguaje orientado a objetos, proporciona todas las herramientas necesarias para crear y manipular clases de manera efectiva. En este artículo, exploraremos los conceptos fundamentales de las clases en Python, centrándonos en la herencia y los métodos mágicos.

Clases en Python

En Python, las clases nos permiten definir nuestros propios tipos de objetos. Una clase es una estructura que encapsula datos (atributos) y funciones (métodos) relacionadas. Es una forma eficiente de organizar y estructurar nuestro código, ya que nos permite crear instancias de la clase y acceder a sus atributos y métodos.

class Persona:

    def __init__(self, nombre, edad):

        self.nombre = nombre

        self.edad = edad


    def saludar(self):

        print(f"Hola, mi nombre es {self.nombre}.")


# Crear una instancia de la clase Persona

persona1 = Persona("Juan", 25)

persona1.saludar()  # Salida: Hola, mi nombre es Juan.

Herencia en Python

La herencia es un concepto clave en la POO que nos permite crear nuevas clases basadas en clases existentes. Una clase hija hereda todos los atributos y métodos de la clase padre, lo que fomenta la reutilización de código y la creación de una jerarquía de clases.

class Estudiante(Persona):

    def __init__(self, nombre, edad, universidad):

        super().__init__(nombre, edad)

        self.universidad = universidad


    def estudiar(self):

        print(f"Soy estudiante de {self.universidad}.")


# Crear una instancia de la clase Estudiante

estudiante1 = Estudiante("Ana", 20, "Universidad XYZ")

estudiante1.saludar()  # Salida: Hola, mi nombre es Ana.

estudiante1.estudiar()  # Salida: Soy estudiante de Universidad XYZ.

Métodos mágicos en Python

Los métodos mágicos son métodos especiales con nombres predefinidos que nos permiten definir el comportamiento de las clases en situaciones específicas. Al implementar estos métodos en nuestras clases, podemos personalizar el comportamiento predeterminado, como la representación como cadena, la comparación de objetos, entre otros.

class Libro:

    def __init__(self, titulo, autor):

        self.titulo = titulo

        self.autor = autor


    def __str__(self):

        return f"{self.titulo} - {self.autor}"


libro1 = Libro("El Gran Gatsby", "F. Scott Fitzgerald")

print(libro1)  # Salida: El Gran Gatsby - F. Scott Fitzgerald

En resumen, la programación orientada a objetos en Python nos permite crear código modular y reutilizable. La herencia nos brinda la capacidad de extender clases existentes, y los métodos mágicos nos permiten personalizar el comportamiento de nuestras clases. Comprender estos conceptos nos ayudará a escribir programas más estructurados y eficientes.





No hay comentarios:

Publicar un comentario

Ejercicio practico, Contactos

 Ejercicio practico con archivos, clases, modulos, crea un archivo de contactos con los recursos disponibles.