在Python中,__hash__是一个特殊方法,用于为对象提供哈希值。哈希值是一个整数,通常用于在哈希表(如字典)中快速查找对象。当你尝试将一个对象用作字典的键或者放入其他需要哈希值的集合类型(如集合set)中时,Python会自动调用该对象的__hash__方法。
__hash__方法应该返回一个整数,这个整数是对象的一个固定且唯一的表示。这意味着,只要对象的状态不变,它的哈希值就不应该改变。如果对象的哈希值在其生命周期中变化,这可能导致在使用对象作为字典键时出现问题,因为字典使用哈希值来快速定位键对应的值。
下面是一个简单的例子,展示如何为一个自定义的类实现__hash__方法:
class Person:
def __init__(self, name, age):
self.name = name