根据python对象的属性生成python对象的唯一ID

cdw*_*son 9 python attributes object

有没有办法在python中为对象生成一个类似哈希的ID,它只基于对象的属性值?例如,

class test:
    def __init__(self, name):
        self.name = name

obj1 = test('a')
obj2 = test('a')

hash1 = magicHash(obj1)
hash2 = magicHash(obj2)
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是hash1 == hash2.python中是否存在类似的内容?我知道我可以测试obj1.name == obj2.name,但我正在寻找一些我可以在任何对象上使用的通用.

Nad*_*mli 6

你的意思是这样的?使用特殊方法__hash__

class test:
     def __init__(self, name):
         self.name = name
     def __hash__(self):
         return hash(self.name)

>>> hash(test(10)) == hash(test(20))
False
>>> hash(test(10)) == hash(test(10))
True
Run Code Online (Sandbox Code Playgroud)