2014-05-20 1 views
2

파이썬에서 나는 논리 연산자 andor을 사용하는 데 익숙하며 런타임에는 왼쪽 값과 오른쪽 값으로 평가되고 True 또는 False으로 바뀝니다.왜 파이썬 논리가 항상 bool로 평가되지 않는가?

최근에 발견 한 사실이 아닙니다. 고려 :

>>> False or 10 
10 

사용 사례를 참조하십시오. 여기에 값을 반환하는 함수가 있거나 실패시 False이 있으면 위의 값을 기본 대체 값으로 사용할 수 있습니다. and로하지만 :

>>> True and re.match("s", "s") 
<_sre.SRE_Match object at 0x19f9098> 

이 나를 퍼즐 ... 그것은 두 피연산자가 True로 평가 and 평가의 마지막 피연산자 것 같다 항상하지만 돈을 실행하는 것이 마지막이다 점에서 의미가있는 반환 이것이 bool을 갖는 것보다 바람직한 이유를 알 수 없습니다.

왜 파이썬이 어떻게합니까? 표시되지 않는 유스 케이스가 있습니까? bool을 원한다는 것을 알고있는 상황에서 이 값으로 변환하는 것이 좋습니다. 예를 들면 : 파이썬 문서의 말에

>>> bool(True and re.match("s", "s")) 
True 
+0

'및'및'또는'연산자에는 부울 논리 외에 다른 용도가 있기 때문에. –

+0

마지막 질문에 관해서는, 내가 낯선 타입이 진실인지 아닌지를 인터프리터에서 확인하는 것을 제외하고는 "bool"을 사용한 적이없는 것 같습니다. –

답변

-1

:

의가 기본값

Boolean operations 문서로 대체 을해야 문자열 인 경우는, 예를 들면, 때때로 유용하다.