Проблема, с которой вы столкнулись, связана с тем фактом, что other
технически совсем не тот же класс. У них одно и то же определение (если они есть, но это не тот же самый экземпляр. Вы можете видеть их как два отдельных черных ящика, поэтому Python ему не нравится.
Самым простым способом решения этой проблемы, который я вижу, является создание открытого доступа к вашей переменной _data, например:
return self._data == other.get_data()
с помощью метода, который просто выполняется:
def get_data():
return self._data
Вы также можете сделать переменную общедоступной, но я не думаю, что это то, что вы ищете.