[TimLinux] Python __hash__ 可哈希集合
规则:
__hash__ 应该返回一个整数,hash()函数计算基础类型的hash值
可哈希集合:set(), forzenset(), dict() 三种数据结构操作要求 key 值唯一,判断唯一的方法是 hash 值。
自定义的类能否作为 key 值存在,要求自定义的类创建的对象为可哈希计算。
__hash__ 函数返回整数值,用来确定对象在哈希集合中的位置(哈希集合比喻为很多的桶,__hash__返回的是桶的位置)
__eq__ 函数用来当多个对象当__hash__值相同(来个对象要进入同一个桶)时,新来的对象能不能取代之前的对象(__eq__相等,不能取代,__eq__不等,可取代)。
规则:
只定义了:__eq__,则 __hash__ 被Python默认设置为 None
只定义了:__eq__,且类为可变,__hash__如果想定义则只能设置为None
定义了:__eq__,__hash__,类必须为不可变对象。
__eq__相等,__hash__必须相等,
__hash__相等,__eq__可以不等(后来的取代之前的)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步