bool에 직접 구현되지 않았습니다.True <2 구현 방법은 무엇입니까?
>>> True.__lt__(2)
AttributeError: 'bool' object has no attribute '__lt__'
그리고 그것은 분명히 구현 아니에요 int
중 하나
>>> super(bool, True).__lt__(2)
AttributeError: 'super' object has no attribute '__lt__'
이 동작을 제어 할 수 2
에 대한 __lt__
전혀 반영 버전 없으며, int
유형 bool
의 서브 클래스가 아니기 때문에 그 않을 것 어쨌든 작동합니다.
파이썬 3는 예상대로 동작 :
>>> True.__lt__(2)
True
그래서, 어떻게 True < 2
파이썬 2에서 구현? 기본적 False
및 True
펑키 repr()
의 0 내지 1이다 :
암시 적으로 정수를 통해 변환 할 수 있습니까? – Carcigenicate
당신은이 트릭을 쉽게 발견 할 수 있습니다.'[exprFalse, exprTrue] [condition]'은'exprTrue if else else exprFalse'와 같습니다. – BlackBear
@BlackBear 둘 다를 평가한다는 것만 제외하면. 조건이 다른 경우 print ("False")'vs'[print ("False"), print ("True")] [condition]'print ("True"). – immibis