martes, 7 de abril de 2026

Programacion orientada a objetos con Python

 Hasta ahora le decíamos a Python: "haz esto, imprime aquello". Hoy vamos a cambiar las reglas del juego. 🚀


Acabo de publicar una de las clases más importantes del curso de Python: Programación Orientada a Objetos (POO). Si quieres crear aplicaciones robustas o videojuegos, necesitas dominar este concepto.

En este vídeo te explico de forma súper visual:
🏭 Qué es una Clase (El molde o plano de la fábrica).
🤖 Qué es un Objeto (El robot que nace de ese molde).
🧠 Cómo funciona el método __init__ y la palabra self.

Pasa de escribir simples instrucciones a crear entidades con vida propia y características únicas.

🎥 Tienes la clase completa y paso a paso aquí:

¿Te animas a crear tu primera clase "Mascota" o "Coche" después de ver el vídeo? ¡Te leo en los comentarios! 👇



sábado, 4 de abril de 2026

¡De programador a Científico de Datos! 🚀 Mi nuevo libro de Scikit-Learn ya está disponible.

¿Sientes que el Machine Learning es un mundo de matemáticas imposibles? He publicado "SCIKIT LEARN: Machine Learning Práctico con Python" para demostrarte que no es así. Este libro es el compañero definitivo para mi curso gratuito.

Mientras en los vídeos vemos la implementación en vivo, en el libro tienes la estructura teórica, las fórmulas explicadas y los flujos profesionales (como los Pipelines) para consultar a tu propio ritmo.

¿Cómo aprenderás?

Consigue tu copia  digital en Amazon: 👉 https://www.amazon.es/dp/B0CW17NBGM

¡Gracias por el apoyo de siempre! @josecodetech 👨‍💻 








jueves, 2 de abril de 2026

¡Crea clases de datos limpias y rápidas con dataclasses! 🏗️✨

¿Sigues escribiendo clases simples para almacenar datos y te pasas la mitad del tiempo definiendo métodos repetitivos como __init__, __repr__, y __eq__?


Ese código "boilerplate" (repetitivo) hace que tus clases sean largas, difíciles de leer y propensas a errores si añades un campo nuevo y olvidas actualizar los métodos.

Mira este ejemplo tradicional de una clase Producto:

# ❌ MÉTODO ANTIGUO (Verboso y repetitivo)
class ProductoTradicional:
def __init__(self, nombre: str, precio: float, stock: int):
self.nombre = nombre
self.precio = precio
self.stock = stock

def __repr__(self):
# Necesario para que print() muestre algo útil
return f"Producto(nombre='{self.nombre}', precio={self.precio}, stock={self.stock})"

def __eq__(self, other):
# Necesario para comparar si dos productos son iguales
if not isinstance(other, ProductoTradicional):
return NotImplemented
return (self.nombre, self.precio, self.stock) == (other.nombre, other.precio, other.stock)

p1 = ProductoTradicional("Teclado", 49.99, 10)
print(p1) # Producto(nombre='Teclado', precio=49.99, stock=10)
¡Es demasiado código para algo tan simple! Python 3.7 introdujo la solución perfecta: el decorador @dataclass.


# ✅ CON DATACLASSES (Limpio y Automático ✨)
from dataclasses import dataclass

@dataclass
class ProductoModerno:
nombre: str
precio: float
stock: int

# ¡Python genera automáticamente __init__, __repr__, __eq__ y más!
p2 = ProductoModerno("Teclado", 49.99, 10)
print(p2) # ProductoModerno(nombre='Teclado', precio=49.99, stock=10)
print(p1 == p2) # False (son clases distintas, pero la comparación funciona)
¿Por qué debes usar dataclasses?

Cero Boilerplate: Escribes solo los campos y sus tipos. Python se encarga del resto.

Legibilidad extrema: Tu clase se centra en los datos, no en la implementación de métodos estándar.

Funciones avanzadas gratis: Puedes hacerlas inmutables fácilmente (frozen=True) o añadir ordenación automática (order=True).

¡Deja que Python escriba el código aburrido por ti y céntrate en la lógica de tu aplicación! 🚀🏗️

Más trucos avanzados de Python aquí 👇