Por que bool é uma subclasse de int?
Ao armazenar um bool no memcached através do python-memcached, notei que ele retornou como um número inteiro. A verificação do código da biblioteca me mostrou que há um lugar ondeisinstance(val, int)
está marcado para sinalizar o valor como um número inteir
Então eu testei no shell python e notei o seguinte:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Mas por que exatamente ébool
uma subclasse deint
?
Faz sentido porque basicamente um booleano é um int que pode receber apenas dois valores, mas precisa de muito menos operações / espaço do que um número inteiro real (sem aritmética, apenas um pouco de espaço de armazenamento) .