2013-10-08 3 views
0

bool() 함수의 잘못된 값은 무엇입니까? 나는 어떤 주장이 예외를 던지게 할까?python - bool에 유효하지 않은 값

사용자 지정 데이터 구조가 True이고 빈 목록 인 경우 빈 문자열 등은 false입니다.

bool 인수에 "True"또는 "False"이외의 값을 반환하는 값이 있습니까?

답변

3

아니요, bool()True 또는 False 만 반환 할 수 있습니다. 모든 파이썬의 값은 부울 의미를가집니다.

값이 빈 컨테이너가 아닌 경우 숫자 0, None 또는 False, bool()True을 반환합니다.

bool()__len__, __nonzero__ (파이썬 2) 및 __bool__ (파이썬 3) 특수 방법이있는 경우이를 사용합니다. 이것들이 예외를 던지면 bool()은 그것을 잡지 못합니다.

+0

'__nonzero__'을 던져 예외로 내 머리 꼭대기에서 생각할 수있는 다소 일반적인 유형은 numpy.ndarray입니다. – mgilson

+0

@mgilson : Martijn은 "파이썬의 모든 값은 부울의 의미를가집니다"라고 잘못 말하는가, 또는 "둘 이상의 요소가있는 배열의 진리 값이 모호하다"는 말을 잘못 듣는가? 또는 (내가 의심하는 바에 따르면) 우리 급여 등급 중 하나의 질문에 대한 답변입니까? ;-) –

+0

@SteveJessop : 파이썬은 모든 값에 부울 값이 있다고 느낍니다. 'numpy'는 특정 값을 물어 보지 말아야한다는 것을 알리기 위해 예외를 올바르게 사용합니다. –

관련 문제