Al almacenar un bool en memcached a través de python-memcached, noté que se devuelve como un número entero. Verificar el código de la biblioteca me mostró que hay un lugar donde isinstance(val, int)
se marca para marcar el valor como un número entero.
Así que lo probé en el shell de Python y noté lo siguiente:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Pero, ¿por qué es exactamente bool
una subclase de int
?
Tiene sentido porque un booleano básicamente es un int que solo puede tomar dos valores, pero necesita muchas menos operaciones / espacio que un entero real (sin aritmética, solo un bit de espacio de almacenamiento) ...