파이썬에서 나는 논리 연산자 and
과 or
을 사용하는 데 익숙하며 런타임에는 왼쪽 값과 오른쪽 값으로 평가되고 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
'및'및'또는'연산자에는 부울 논리 외에 다른 용도가 있기 때문에. –
마지막 질문에 관해서는, 내가 낯선 타입이 진실인지 아닌지를 인터프리터에서 확인하는 것을 제외하고는 "bool"을 사용한 적이없는 것 같습니다. –