Python comparando boolean e int usando isinstance

¿Alguien puede darme una explicación de por quéisinstance() devuelve True en el siguiente caso? Esperaba False, al escribir el código.

print isinstance(True, (float, int))
True

Supongo que la subclasificación interna de su pitón, como cero y uno, flotante o int, ambos se evalúan cuando se usan como booleanos, pero no saben la razón exacta.

¿Cuál sería la forma más pitónica de resolver una situación así? Podría usartype() pero en la mayoría de los casos esto se considera menos pitónico.

Respuestas a la pregunta(4)

Su respuesta a la pregunta