python - 如何计算Python类对象的哈希值

标签 python oop hash md5

在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/

相关文章:

java - 需要有关 java 中复杂结构的建议(DAO 和服务层链接/耦合)

perl - 如何在Perl中创建哈希哈希?

python - 为什么这个函数是一个糟糕的散列函数?

python - KNN 模型返回与任意 k 相同的距离

python - 从cherrypy 提供mp3 文件

vba - 返回类的函数包含返回类的函数

Java : Class inheriting self

python - 删除二值阈值图像中具有连接边缘的小破折号

python - QuerySEt 中的日期字段到字符串格式

c - 'Table1' 未声明(在此函数中首次使用)