동아리 과제를 하면서 python으로 문자열 'true'를 bool 타입 True로, 문자열 'false'를 bool 타입 False로 바꿔야 했다.
더 자세한 상황을 설명하자면,
자바스크립트로 체크박스의 checked 어트리뷰트를 파라미터로 서버에 보내면
DB에서 요소를 필터링을 하기 위해 string을 bool로 바꿔야했다.
처음에 다른 타입을 문자열로 바꿀 때 str()을 사용했던 것이 기억나 bool()을 사용했으나
string 값과 무관하게 항상 True로 변환됐다.
결론만 말하자면, bool()은 인자로 주어진 문자열이 빈 문자열이 아니면 항상 True를, 빈 문자열이면 False를 반환한다.
따라서 string 'true','false'를 bool로 바꾸고 싶다면 'true'와 비교하는 것이 좋다.
string_true = 'true'
string_false = 'false'
bool_true = (string_true == 'true')
bool_false = (string_false == 'true')
참고: http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python