python-memcachedを介してmemcachedにboolを格納すると、整数として返されることに気付きました。ライブラリのコードをisinstance(val, int)
チェックすると、値を整数としてフラグを立てるためにチェックされる場所があることがわかりました。
だから私はそれをPythonシェルでテストし、次のことに気づきました:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
しかし、なぜ正確にbool
のサブクラスなのint
ですか?
ブール値は基本的に2つの値を取ることができるintですが、実際の整数よりもはるかに少ない操作/スペースで済みます(算術演算なし、ストレージスペースは1ビットのみ)。