그래서 저는 현재 (ab) 파이썬 표기법을 사용하여 도메인 특정 언어를 만들고 있습니다. 이것의 일부로 부울이 아닌 값을 반환하기 위해 비교 함수를 재정의하고 있습니다.
따라서 (mytype1 <mytype2) 및 (mytype <0)의 경우 __lt __ () 매직 메서드를 정의하여 쉽게 수행 할 수 있습니다.
그러나 (0 <mytype)에 대해 그렇게하는 방법을 알 수 없습니다. 아마도 매직 메서드가 내장 int 유형에 정의되어야하기 때문입니다. 숫자 연산을 위해 존재하는 것처럼 __rlt __ () 함수가없는 것 같습니다.
lhs가 int (python3) 유형 인 경우이 비교에 대한 지원을 어떻게 추가합니까?
에 따라 문서 의 반사 형태 __lt__()
입니다 __gt__()
.
이러한 메서드의 인수가 교체 된 버전은 없습니다 (왼쪽 인수가 작업을 지원하지 않지만 오른쪽 인수가 지원할 때 사용됨). 오히려,
__lt__()
그리고__gt__()
서로의 반영이다,__le__()
그리고__ge__()
서로의 반사하고,__eq__()
그리고__ne__()
자신의 반영이다. 피연산자가 다른 유형이고 오른쪽 피연산자의 유형이 왼쪽 피연산자 유형의 직접 또는 간접 서브 클래스 인 경우 오른쪽 피연산자의 반영된 메소드가 우선 순위를 가지며 그렇지 않으면 왼쪽 피연산자의 메소드가 우선 순위를 갖습니다. 가상 서브 클래 싱은 고려되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다