PythonIntermedio17 oct 2025
¡`True` es un `int`! ¿Python, qué fumas?
snippet.python
print(isinstance(True, int))¿Qué crees que imprime?
✅ Salida Esperada
False⚠️ Salida Real
True¿Por qué pasa esto?
¡Abróchense los cinturones, amantes de la lógica! 🤯 Python tiene una sorpresa en su árbol genealógico de tipos:
- Todos esperamos que `True` sea un **booleano**, ¡y lo es! Pero...
- En Python, `bool` no es solo un tipo aparte; ¡es una **subclase de `int`**! 😱
- Esto significa que `True` se comporta como el entero `1` y `False` como `0` en muchos contextos.
- Así que, cuando le preguntas `isinstance(True, int)`, es como preguntar si un Ferrari es un coche. ¡Claro que sí, es un coche muy especial! 🏎️💨
Es una decisión de diseño para permitir que los booleanos se usen en contextos numéricos sin conversiones explícitas. ¡Práctico, pero contraintuitivo para los no iniciados y los que vienen de otros lenguajes! Siempre es bueno recordar que en Python, `True` y `False` tienen un lado numérico oculto.
Conceptos relacionados
type-systemsubclassingboolean-logic