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