Beim Speichern eines Bools in Memcached über Python-Memcached habe ich festgestellt, dass es als Ganzzahl zurückgegeben wird. Das Überprüfen des Codes der Bibliothek hat mir gezeigt, dass es einen Ort isinstance(val, int)
gibt, an dem überprüft wird, um den Wert als Ganzzahl zu kennzeichnen.
Also habe ich es in der Python-Shell getestet und Folgendes festgestellt:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Aber warum genau ist bool
eine Unterklasse von int
?
Das macht irgendwie Sinn, weil ein Boolescher Wert im Grunde genommen ein int ist, das nur zwei Werte annehmen kann, aber viel weniger Operationen / Speicherplatz benötigt als eine tatsächliche Ganzzahl (keine Arithmetik, nur ein einziges Bit Speicherplatz) ....
bool
s verkleinert , da in Python alles ein Objekt ist . Wenn Sie sich für die Speichernutzung interessieren, verwenden Sie zunächst eine andere Sprache.