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.
Deja una respuesta