При хранении bool в memcached через python-memcached я заметил, что он возвращался как целое число. Проверка кода библиотеки показала мне, что есть место, где isinstance(val, int)
проверяется, чтобы пометить значение как целое число.
Итак, я протестировал его в оболочке python и заметил следующее:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Но почему именно bool
подкласс int
?
Это имеет смысл, потому что логическое значение в основном представляет собой int, который может принимать только два значения, но для этого требуется намного меньше операций/пробелов, чем фактическое целое число (без арифметики, только один бит пространства для хранения)....