Skip to main content

Clases y objetos

¿Qué son las clases y objetos?

En Python, las clases y los objetos son dos conceptos fundamentales de la programación orientada a objetos.

Clase

Una clase es un tipo de dato que define las características y el comportamiento de un objeto.

Objeto

Un objeto es una instancia de una clase.

Creando una clase

Para crear una clase, se utiliza la palabra clave class.

Python

class Clase:
pass

Este código crea una clase llamada Clase.

Creando un objeto

Para crear un objeto, se utiliza el operador ().

Python

objeto = Clase()

Este código crea un objeto llamado objeto de la clase Clase.

Constructor de clases

El constructor de clases es un método especial que se ejecuta cuando se crea un objeto.

Python

class Clase:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad

objeto = Clase("Juan", 30)
print(objeto.nombre)

Este código crea un objeto llamado objeto de la clase Clase. El constructor de la clase establece el nombre del objeto a "Juan" y la edad del objeto a 30.

Métodos de objetos

Los métodos son funciones que se asocian a un objeto.

Python

class Clase:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad

def saludar(self):
print("Hola, mi nombre es", self.nombre)

objeto = Clase("Juan", 30)
objeto.saludar()

Este código crea un objeto llamado objeto de la clase Clase. El método saludar() imprime el nombre del objeto.

Métodos predeterminados de objetos

Los objetos tienen una serie de métodos predeterminados que se pueden utilizar para acceder a sus propiedades y métodos.

Python

class Clase:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad

objeto = Clase("Juan", 30)

print(objeto.nombre)
print(objeto.edad)

Este código imprime el nombre y la edad del objeto.

Método para modificar los valores predeterminados de clase

Se puede utilizar el método setattr() para modificar los valores predeterminados de clase.

Python

class Clase:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad

Clase.nombre_clase = "Mi clase"

objeto = Clase("Juan", 30)

print(objeto.nombre_clase)

Este código imprime el nombre de la clase.

Herencia

La herencia es una característica de la programación orientada a objetos que permite crear clases a partir de otras clases.

Python

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

def hablar(self):
print("Soy un animal y no sé hablar")

class Perro(Animal):
def __init__(self, nombre, raza):
super().__init__(nombre)
self.raza = raza

def ladrar(self):
print("Guau!")

objeto_perro = Perro("Perrito", "Pastor alemán")
objeto_perro.hablar()
objeto_perro.ladrar()

Este código crea una clase llamada Animal. La clase Perro hereda de la clase Animal. El método ladrar() se define en la clase Perro.

Anulando el método principal

El método principal, también conocido como método __init__(), se ejecuta cuando se crea un objeto. Se puede anular el método principal para realizar acciones específicas cuando se crea un objeto.

Python

class Clase:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad

def __init__(self):
print("Se ha creado un objeto de la clase Clase")

objeto = Clase()

Este código imprime el mensaje "Se ha creado un objeto de la clase Clase" cuando se crea el objeto objeto.

Ejemplo de herencia

Python

class Animal: