2.2 불리언 논리 값에 대한 지나친 검증
거의 모든 파이썬 객체는 ‘참(true)’ 또는 ‘거짓(false)’으로 구분할 수 있습니다. 즉 논리적인 맥락에서 거의 모든 객체는 bool()로 감싸지 않은 상태 ‘그대로’ 사용할 수 있으며, 특히 obj is True나 obj is False를 이용한 비교는 전혀 의미가 없습니다.
is True와 is False는 단순히 불필요한 수준이 아니라 실제로 오류를 일으킬 수도 있습니다. 라이브러리의 함수와 같이 직접 작성하지 않은 함수를 비롯해 어떤 함수의 반환 값이 참과 거짓으로 평가될 수 있음에도 불구하고, 실제로는 True나 False 자체가 아닐 수 있습니다. 따라서 값이 실제로 불리언(boolean) 논리 값이라고 가정해도 동작하는 경우가 자주 있지만, 보초 값을 전달하기 위해 특정 자료형의 객체를 반환하는 경우처럼 다른 자료형의 객체를 반환하면 예상치 못한 문제가 발생할 수 있습니다.