You'll find that they are integers, though:
>>> isinstance(True, int)
True
>>> bool.__mro__
(<type 'bool'>, <type 'int'>, <type 'object'>)
Although they aren't literally the same object, 1 == True does evaluate to True.
>>> isinstance(True, int)
True
>>> bool.__mro__
(<type 'bool'>, <type 'int'>, <type 'object'>)
Although they aren't literally the same object, 1 == True does evaluate to True.