在python3中,我有一个类。如下所示:
class Foo:
def __init__(self):
self.x = 3
def fcn(self, val):
self.x += val
然后我实例化该类的对象,如下所示:
new_obj = Foo()
new_obj2 = Foo()
现在,当我对这些对象进行哈希处理时,我会得到不同的哈希值。我需要它们返回相同的哈希值,因为它们是相同的对象(理论上)。
知道我该怎么做吗?
最佳答案
感谢所有回答的人。你是对的,实例化同一类对象的新实例实际上并不相同,因为它在内存中占据不同的位置。我最终所做的与 @nosklo 建议的类似。
我创建了一个“get_hashables”函数,它返回一个字典,其中包含构成唯一类对象的类的所有属性,如下所示:
def get_hashables(self):
return {'data': self.data, 'result': self.result}
然后我的主要方法将采用这些“可散列”变量,并对它们进行散列以生成散列本身。
关于python - 如何计算Python类对象的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767475/