Durante la memorizzazione di un bool in memcached tramite python-memcached, ho notato che viene restituito come numero intero. Il controllo del codice della libreria mi ha mostrato che esiste un punto in cui isinstance(val, int)
viene controllato per contrassegnare il valore come un numero intero.
Quindi l'ho testato nella shell python e ho notato quanto segue:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Ma perché è esattamente bool
una sottoclasse di int
?
Ha senso perché un booleano è fondamentalmente un int che può prendere solo due valori ma richiede molte meno operazioni / spazio rispetto a un numero intero effettivo (senza aritmetica, solo un singolo bit di spazio di archiviazione) ...