Clases y Objetos en Python: Fundamentos de POO para Principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Programación Orientada a Objetos en Python

La Programación Orientada a Objetos (POO) es una de las paradigmas más importantes en la programación moderna. Python soporta POO a nivel completo, lo que lo convierte en una herramienta poderosa tanto para desarrolladores principiantes como para programadores profesionales.

La POO ayuda a modelar el mundo real, mejora la legibilidad del código, permite reutilizar componentes y gestionar la complejidad de los proyectos. Los conceptos clave de la programación orientada a objetos son las clases y los objetos, junto con los principios fundamentales: herencia, encapsulación y polimorfismo.

Este enfoque permite estructurar un programa como un conjunto de objetos que interactúan entre sí, donde cada objeto es una instancia de una clase específica. Esto hace que el código sea más modular, comprensible y fácil de mantener.

Fundamentos de Clases y Objetos en Python

Definición de Clase y Objeto

Una clase es una plantilla o modelo para crear objetos. Define la estructura de datos y los métodos que estarán disponibles para todos los objetos de ese tipo.

Un objeto es una instancia concreta de una clase, que posee sus propios datos y puede ejecutar las acciones definidas en la clase.

class Coche:
    def conducir(self):
        print("El coche está en marcha")

mi_coche = Coche()  # objeto (instancia de la clase)
mi_coche.conducir()

En el código anterior, la clase Coche define la plantilla para crear objetos de tipo coche. El método conducir() describe el comportamiento disponible para todas las instancias de esta clase.

Estructura de una Clase en Python

La estructura básica de una clase en Python es la siguiente:

class NombreClase:
    def __init__(self, argumentos):
        self.propiedades = valores
    
    def metodo(self):
        acciones

Los componentes importantes de una clase incluyen:

  • init — el constructor de la clase, que se llama automáticamente al crear un nuevo objeto
  • self — un parámetro especial que representa una referencia a la instancia actual del objeto
  • Atributos — variables que almacenan los datos del objeto
  • Métodos — funciones definidas dentro de la clase y asociadas al objeto

Creación y Uso de Clases

Ejemplo Práctico de Creación de una Clase

Veamos la creación de una clase Persona que modela a una persona:

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad
    
    def saludar(self):
        print(f"Hola, me llamo {self.nombre}")
    
    def obtener_info(self):
        return f"Nombre: {self.nombre}, Edad: {self.edad}"

p = Persona("Ana", 30)
p.saludar()
print(p.obtener_info())

En este ejemplo, el constructor init recibe los parámetros nombre y edad, que se guardan como atributos de la instancia. Los métodos saludar() y obtener_info() proporcionan funcionalidad para trabajar con los datos del objeto.

Creación de Instancias de una Clase

El proceso de crear una instancia de una clase en Python se realiza llamando a la clase como si fuera una función:

p1 = Persona("Juan", 25)
p2 = Persona("María", 28)

print(p1.nombre)  # Juan
print(p1.edad)    # 25
print(p2.nombre)  # María

Cada llamada al constructor de la clase crea un nuevo objeto independiente con sus propios atributos y estado.

Atributos en Clases de Python

Atributos de Instancia

Los atributos de instancia son únicos para cada objeto. Se crean e inicializan en el método init y pueden modificarse durante la ejecución del programa:

class Estudiante:
    def __init__(self, nombre, nota):
        self.nombre = nombre
        self.nota = nota
    
    def actualizar_nota(self, nueva_nota):                

Blogs

Book Recommendations