hash() 对象哈希值
最后更新:2026-09-22
hash() 对象哈希值
hash() 返回对象的整数哈希值(可哈希对象);相同对象(a is b)一定有相同哈希。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
hash(object)
⚙️ 参数
| object 必选 | 要计算哈希的对象,必须是可哈希类型。 |
|---|
返回值:返回对象的整数哈希值;相等的对象哈希值一定相同。
💥 异常
TypeError— 对象不可哈希(如 list、dict、set)时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
529344067295497451
ℹ️ 说明 不可变容器通常可哈希;list / set / dict 不可哈希。
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Q为什么 hash([1, 2]) 报 TypeError?
Alist 可变、内容可改,无法保证哈希稳定,所以不可哈希;同理 dict、set 也不可哈希。
Q哪些对象是可哈希的?
A不可变类型通常可哈希:int、float、str、bytes、tuple、frozenset、None 等;注意 tuple 里若含 list 也不可哈希。
Q相等的对象哈希一定相同吗?
A一定相同:a == b 则 hash(a) == hash(b)。但反过来不成立,不同对象哈希可能碰撞(相同哈希不代表相等)。
Q每次运行程序 hash('abc') 结果一样吗?
A不一定。字符串哈希默认带随机化种子(PYTHONHASHSEED),跨进程不保证一致;不要把哈希值用于持久化或跨进程传递。