Au moment d'enregistrer un bool dans memcached via python-memcached j'ai remarqué qu'elle est retournée comme un entier. Vérification du code de la bibliothèque m'a montré qu'il est un lieu où l' isinstance(val, int)
est vérifié pour drapeau de la valeur comme un nombre entier.
J'ai donc testé en python shell et de remarquer ce qui suit:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Mais pourquoi exactement est - bool
une sous-classe de int
?
Il sorte de sens, car un booléen, fondamentalement, est un int qui peuvent juste prendre deux valeurs, mais il a besoin de beaucoup moins d'opérations/de l'espace que d'une réelle entier (pas de l'arithmétique, un seul bit d'espace de stockage)....