python-memcached를 통해 memcached와 상호작용할 때 bool 값이 정수로 반환됩니다. 이 놀라운 관찰은 추가 조사를 촉발했습니다.
Python에서 isinstance(True, int) 및 issubclass(bool, int)는 모두 True로 평가되어 bool이 하위 클래스임을 나타냅니다. 정수의. 이것은 다음과 같은 질문을 제기합니다: 왜 이런 일이 일어나는가?
Python에서 bool 유형을 도입한 목적은 진리 값의 표현을 향상시키는 것이었습니다. 그러나 이전 버전과의 호환성을 보장하려면 bool 유형이 0 및 1(이전 진리값 표현)과 동일하게 동작해야 했습니다. 이는 진리값을 넘어 모든 적분 연산을 포함하도록 확장되었습니다.
비이상적인 방식으로 부울 값에 의존했던 기존 코드를 방해하지 않도록 bool 유형을 True로 구현했습니다. 거짓은 각각 1과 0으로 가장합니다. 이 역사적 결정으로 인해 bool과 int 사이에 특이한 상속 관계가 만들어졌습니다.
bool과 int 사이의 하위 클래스 관계는 Python 언어 진화의 유물입니다. 이는 부울 유형의 최신 사용법을 수용하면서 부울 값을 정수로 처리하는 레거시 코드와의 원활한 통합을 허용합니다.
위 내용은 Python에서 Bool이 Int의 하위 클래스인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!