Mostrando entradas con la etiqueta m茅todos especiales. Mostrar todas las entradas
Mostrando entradas con la etiqueta m茅todos especiales. Mostrar todas las entradas

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?