본문 바로가기
파이썬

파이썬에서 __eq__ 측면에서 __ne__을 구현해야합니까?

by º기록 2020. 10. 22.
반응형

__ eq __ 메서드를 재정의하려는 클래스가 있습니다. __ ne __ 메서드도 재정의해야하는 것이 이해가되는 것 같지만 __ eq __ 측면에서 __ ne __ 를 구현하는 것이 합리적입니까? ?

class A:

    def __init__(self, attr):
        self.attr = attr

    def __eq__(self, other):
        return self.attr == other.attr
    
    def __ne__(self, other):
        return not self.__eq__(other)

아니면 파이썬이 이러한 방법을 사용하는 방식에서 빠진 것이 있는데 이것이 좋은 생각이 아닙니다.

 

해결 방법

 


묵시적 관계가 없습니다 among the comparison operators. The truth of x==y does not imply that x!=y is false. Accordingly, when defining __ eq __ () , 연산자가 예상대로 동작하도록 __ ne __ () 도 정의해야합니다.

많은 경우 (예 :이 경우) __ eq __ 의 결과를 부정하는 것처럼 간단하지만 항상 그런 것은 아닙니다.

 

참조 페이지 https://stackoverflow.com/questions/4352244

 

 

반응형

댓글