Khi lưu trữ bool trong memcached qua python-memcached, tôi nhận thấy rằng nó được trả về dưới dạng số nguyên. Kiểm tra mã của thư viện cho tôi thấy rằng có một nơi isinstance(val, int)
được kiểm tra để gắn cờ giá trị dưới dạng số nguyên.
Vì vậy, tôi đã thử nghiệm nó trong python shell và nhận thấy những điều sau:
>>> isinstance(True, int)
True
>>> issubclass(bool, int)
True
Nhưng tại sao chính xác là bool
một lớp con của int
?
Nó có ý nghĩa vì một boolean về cơ bản là một int có thể chỉ nhận hai giá trị nhưng nó cần ít hoạt động / không gian hơn nhiều so với một số nguyên thực tế (không có số học, chỉ có một bit không gian lưu trữ) ....