속성을 기준으로 객체 인스턴스가 동일한지 비교하는 방법
Python은 기본적으로 객체 인스턴스를 참조로 비교합니다. 즉, 두 객체가 동일하더라도 속성 값이 동일하지 않은 것으로 간주됩니다. 이 동작은 객체 속성을 기반으로 동일성 검사를 수행해야 할 때 문제가 될 수 있습니다.
이 문제에 대한 한 가지 해결책은 클래스에 __eq__ 메서드를 구현하는 것입니다. 이 방법을 사용하면 클래스의 두 인스턴스가 동일한 것으로 간주되는 조건을 정의할 수 있습니다.
__eq__를 구현하려면 다음 단계를 따르세요.
예를 들어 다음은 MyClass 클래스에 대한 __eq__ 구현입니다.
<code class="python">class MyClass: def __init__(self, foo, bar): self.foo = foo self.bar = bar def __eq__(self, other): if not isinstance(other, MyClass): return NotImplemented return self.foo == other.foo and self.bar == other.bar</code>
이 구현을 사용하면 MyClass 인스턴스 foo 및 bar 속성을 기준으로 동등성을 비교할 수 있습니다.
<code class="python">x = MyClass('foo', 'bar') y = MyClass('foo', 'bar') print(x == y) # True</code>
__eq__를 구현하면 클래스 인스턴스를 해시할 수 없게 됩니다. 인스턴스를 세트나 사전에 저장해야 하는 경우 __hash__ 메소드를 구현하여 객체에 대한 해시 함수를 정의해야 합니다.
위 내용은 Python에서 객체 인스턴스에 대한 동등 비교를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!