python, сравнивающий логическое и int с использованием isinstance

Может кто-нибудь дать мне объяснение, почемуisinstance() возвращает True в следующем случае? Я ожидал False при написании кода.

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

Я предполагаю, что внутреннее подклассирование его python, как ноль и единица - как float или int - оба оценивают, когда используются как булевы, но не знают точную причину.

Каков был бы самый питонический способ разрешения такой ситуации? Я мог бы использоватьtype() но в большинстве случаев это считается менее питоническим.

Ответы на вопрос(4)

Ваш ответ на вопрос