6. Programación orientada a objetos

Programación Orientada a Objetos en Python

La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en la creación de objetos que contienen tanto datos como métodos relacionados con dicho objeto. Los objetos se definen a partir de clases, que son plantillas que definen las propiedades y comportamientos que todos los objetos de esa clase tendrán.

Python es un lenguaje de programación que soporta completamente la POO. En Python, todo es un objeto y las clases son objetos que se pueden manipular dinámicamente. La sintaxis para definir una clase en Python es la siguiente:

class NombreDeLaClase:
    def __init__(self, parametro1, parametro2):
        self.parametro1 = parametro1
        self.parametro2 = parametro2

    def metodo1(self):
        print('Este es un método de la clase')

instancia_de_la_clase = NombreDeLaClase(valor1, valor2)

En este ejemplo, se define una clase llamada ‘NombreDeLaClase’ que tiene dos parámetros, ‘parametro1’ y ‘parametro2’, y un método llamado ‘metodo1’. El método ‘metodo1’ simplemente imprime un mensaje en la consola. Para crear un objeto de la clase ‘NombreDeLaClase’, se utiliza la sintaxis ‘instancia_de_la_clase = NombreDeLaClase(valor1, valor2)’, donde ‘valor1’ y ‘valor2’ son los valores a asignar a los parámetros ‘parametro1’ y ‘parametro2’.

Encapsulación

Uno de los principios fundamentales de la POO es la encapsulación, que es la ocultación de la complejidad interna de los objetos y el acceso sólo a las características esenciales de los mismos. En Python, la encapsulación se logra mediante el uso de variables de instancia y métodos de instancia.

Las variables de instancia son variables que se definen en la clase y que sólo son accesibles desde los métodos de la instancia. La sintaxis para definir una variable de instancia es la siguiente:

class NombreDeLaClase:
    def __init__(self, parametro1):
        self.variable_instancia = parametro1

En este ejemplo, se define una variable de instancia llamada ‘variable_instancia’ que se inicializa con el valor del parámetro ‘parametro1’. Esta variable sólo es accesible desde los métodos de la instancia.

Los métodos de instancia son métodos que se definen en la clase y que pueden acceder a las variables de instancia de la misma. La sintaxis para definir un método de instancia es la siguiente:

class NombreDeLaClase:
    def __init__(self, parametro1):
        self.variable_instancia = parametro1

    def metodo_de_instancia(self):
        print(self.variable_instancia)

En este ejemplo, se define un método de instancia llamado ‘metodo_de_instancia’ que simplemente imprime el valor de la variable de instancia ‘variable_instancia’. Este método sólo puede ser llamado por una instancia de la clase y puede acceder a sus variables de instancia.

Herencia

La herencia es otro principio fundamental de la POO que permite crear nuevas clases a partir de clases existentes y que adoptan sus propiedades y comportamientos. En Python, la herencia se logra mediante la definición de una nueva clase que hereda de una clase existente mediante la sintaxis ‘class NuevaClase(ClaseExistente):’.

La nueva clase puede añadir nuevas variables de instancia y métodos de instancia, así como sobrescribir los métodos de la clase base. La sintaxis para llamar a un método de la clase base desde la clase derivada es la siguiente: ‘super().nombre_del_metodo()’.

class Animal:
    def __init__(self, nombre, sonido):
        self.nombre = nombre
        self.sonido = sonido

    def emitir_sonido(self):
        print(self.sonido)

class Perro(Animal):
    def __init__(self, nombre):
        super().__init__(nombre, 'Guau!')

    def morder(self):
        print('El perro {} ha mordido a alguien!'.format(self.nombre))

mi_perro = Perro('Fido')
mi_perro.emitir_sonido() # Output: Guau!
mi_perro.morder() # Output: El perro Fido ha mordido a alguien!

En este ejemplo, se define una clase base ‘Animal’ con un constructor que define dos variables de instancia, ‘nombre’ y ‘sonido’, y un método de instancia ‘emitir_sonido’ que imprime el sonido del animal en la consola. Luego se define una clase derivada ‘Perro’ que hereda de ‘Animal’ y que define un constructor que llama al constructor de la clase base pasando el argumento ‘Guau!’ como sonido. La clase derivada también define un nuevo método de instancia ‘morder’ que imprime un mensaje en la consola. Finalmente, se crea una instancia de la clase ‘Perro’ llamada ‘mi_perro’ y se invoca a sus métodos ‘emitir_sonido’ y ‘morder’.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *