Спасибо всем, кто ответил.Вы правы, что создание экземпляра нового объекта того же класса не на самом деле , то же самое, поскольку оно занимает другое место в памяти.То, что я закончил, похоже на то, что предложил @nosklo.
Я создал функцию 'get_hashables', которая возвращала словарь со всеми свойствами класса, который будет составлять уникальный объект класса, например:
def get_hashables(self):
return {'data': self.data, 'result': self.result}
Тогда мой основной метод взял бы эти «хешируемые» переменные и хэшировал их для создания самого хэша.