6.1 Clases y objetos: Cómo definir y usar clases y objetos en Python

Clases y objetos en Python

En Python, una clase es una estructura que contiene métodos y atributos. Los métodos son funciones que definen el comportamiento de la clase, mientras que los atributos son variables que almacenan datos específicos para cada instancia de la clase. Un objeto es una instancia de una clase, es decir, una copia única de la estructura que puede interactuar con el programa de forma independiente.

Para definir una clase en Python, se utiliza la palabra clave class. Por ejemplo, veamos una definición simple de una clase ‘Persona’:

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad
 
    def saludo(self):
        print(f'Hola, mi nombre es {self.nombre} y tengo {self.edad} años.')

En este ejemplo, la clase ‘Persona’ tiene dos atributos, ‘nombre’ y ‘edad’ y un método llamado ‘saludo’. Observa que el primer argumento que recibe el método ‘__init__’ y ‘saludo’ es ‘self’. ‘self’ hace referencia a la instancia actual de la clase, y se utiliza para acceder a los atributos y métodos de la clase.

Para crear un objeto de la clase ‘Persona’ se utiliza su constructor ‘__init__’.

# Creamos un objeto de la clase Persona 
persona1 = Persona('Juan', 25)
 
# accede al método saludo
persona1.saludo()

En este ejemplo, creamos un objeto llamado ‘persona1’ y le pasamos los valores ‘Juan’ y ’25’ a su constructor ‘__init__’. Luego, accedemos al método ‘saludo’ utilizando el objeto ‘persona1’.

Los objetos también pueden tener atributos adicionales a los definidos en la clase:

# Creamos un objeto de la clase Persona 
persona1 = Persona('Juan', 25)
 
# Añadimos un atributo adicional al objeto
persona1.profesion = 'Ingeniero'
 
# Accedemos al atributo adicional
print(persona1.profesion)

En este ejemplo, añadimos un atributo ‘profesion’ adicional al objeto ‘persona1’ y lo imprimimos.

También es posible crear subclases (herencia) a partir de una clase existente. Una subclase hereda todos los atributos y métodos de la clase padre, permitiendo así extender o modificar el comportamiento de la clase padre.

class Estudiante(Persona):
    def __init__(self, nombre, edad, universidad):
        super().__init__(nombre, edad)
        self.universidad = universidad
 
    # Sobreescritura del método saludo
    def saludo(self):
        print(f'Hola, mi nombre es {self.nombre}, tengo {self.edad} años y estudio en la universidad {self.universidad}.')

En este ejemplo, estamos creando una subclase ‘Estudiante’ a partir de la clase ‘Persona’. La subclase tiene un atributo adicional ‘universidad’ y un método ‘saludo’ que sobrescribe al método ‘saludo’ de la clase padre.

# Creamos un objeto de la clase Estudiante
estudiante1 = Estudiante('Marta', 20, 'UNAM')
 
# Accedemos al atributo y método de la subclase
print(estudiante1.universidad)
estudiante1.saludo()
 
# Accedemos al atributo y método de la clase padre
print(estudiante1.edad)
estudiante1.saludo()

En este ejemplo, creamos un objeto ‘estudiante1’ de la clase ‘Estudiante’ y accedemos a su atributo ‘universidad’ y método ‘saludo’. También podemos acceder a los atributos y métodos de la clase padre ‘Persona’.

Conclusión

Las clases y objetos son fundamentales en Python y permiten crear estructuras complejas que se pueden utilizar en todo el programa. Espero que este tutorial te haya dado una idea básica de cómo definir y utilizar clases y objetos en Python.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

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