When reading about how to implement __eq__ in python, such as in this SO question, you get recommendations like
class A(object):
    def __init__(self, a, b):
        self._a = a
        self._b = b
    def __eq__(self, other):
        return (self._a, self._b) == (other._a, other._b)
Now, I'm having problems when combining this with inheritance. Specifically, if I define a new class
class B(A):
    def new_method(self):
        return self._a + self._b
Then I get this issue
>>> a = A(1, 2)
>>> b = B(1, 2)
>>> a == b
True
But clearly, a and b are not the (exact) same!
What is the correct way to implement __eq__ with inheritance?
 
     
    