📅  最后修改于: 2023-12-03 14:45:58.555000             🧑  作者: Mango
hash()
函数与示例Python hash()
函数用于获取给定对象的哈希值,通常用于对大型数据对象进行快速比较。该函数返回一个整数,表示对象的哈希值。
hash(object)
object
:必需,对象。返回对象的哈希值(如果该对象可以哈希)。
x = 10
print(hash(x))
输出:
10
x = "hello world"
print(hash(x))
输出:
-1557613958998812812
x = [1, 2, 3]
print(hash(x))
输出:
TypeError: unhashable type: 'list'
注意,列表是不可哈希类型,无法通过hash()
函数获取其哈希值。
x = {"name": "Tom", "age": 20}
print(hash(frozenset(x.items())))
输出:
-5781298694718821300
由于字典是可变类型,无法直接获取其哈希值。因此,我们可以先将其转换为不可变类型frozenset
,再获取其哈希值。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Tom", 20)
print(hash(frozenset(p1.__dict__.items())))
输出:
-1714129823302635116
同样地,对于自定义类的对象,我们也可以将其__dict__
属性转换为frozenset
,再获取其哈希值。
hash()
函数获取其哈希值,会抛出TypeError
异常。__eq__()
方法时,通常也需要重载__hash__()
方法以配合哈希表的使用。