jueves, 12 de junio de 2025

🧪 Python Nivel 2 – Parte 4: Constructores, Destructores y Métodos Especiales

 

🎯 ¿Qué aprenderás hoy?

✅ Qué es y cómo se usa el constructor __init__
✅ Cómo implementar un destructor con __del__
✅ Métodos especiales como __str__, __len__, __eq__, __repr__
✅ Cómo hacer que tus objetos se comporten como tipos nativos


🔧 1. Constructor __init__()

El constructor se ejecuta automáticamente cuando creas un nuevo objeto. Se usa para inicializar atributos.


class Usuario: def __init__(self, nombre, email): self.nombre = nombre self.email = email usuario1 = Usuario("Laura", "laura@email.com") print(usuario1.nombre)

🔧 2. Destructor __del__()

El destructor se ejecuta cuando el objeto se elimina. Puede usarse para liberar recursos (memoria, archivos abiertos, conexiones).


class Conexion: def __init__(self): print("🔌 Conexión establecida.") def __del__(self): print("❌ Conexión cerrada.") c = Conexion() del c # Esto fuerza la destrucción

🔧 3. Método __str__() – Representación legible

Define cómo se muestra el objeto cuando se imprime.


class Producto: def __init__(self, nombre, precio): self.nombre = nombre self.precio = precio def __str__(self): return f"{self.nombre} - ${self.precio}" p = Producto("Auriculares", 45.99) print(p) # Auriculares - $45.99

🔧 4. Otros métodos especiales útiles

MétodoDescripción
__len__Devuelve la longitud
__eq__Define cómo comparar dos objetos (==)
__repr__Representación técnica (depuración)
__add__Define cómo sumar dos objetos

✅ Ejemplo de comparación con __eq__


class Libro: def __init__(self, titulo): self.titulo = titulo def __eq__(self, otro): return self.titulo == otro.titulo l1 = Libro("Python Básico") l2 = Libro("Python Básico") print(l1 == l2) # True

🚀 ¿Qué aprendiste hoy?

✔️ Cómo inicializar y destruir objetos
✔️ Cómo hacer que tus clases se comporten de forma más intuitiva
✔️ Cómo personalizar funciones internas como print(), ==, len()
✔️ Cómo mejorar la depuración con __repr__


📂 Código completo en GitHub:
github.com/josecodetech

🎥 Video paso a paso en YouTube:
https://www.youtube.com/watch?v=F2LKpvepD_c

💬 ¿Qué método especial te parece más útil? ¿Has usado __init__ sin saberlo?


No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.