【问题标题】:Using Objects Memory Location As Hash Key使用对象内存位置作为哈希键
【发布时间】:2021-07-19 06:09:51
【问题描述】:

所以我今天意识到在 Python 中我们可以使用对象内存地址位置作为字典中的键。

当位于该内存位置的对象被替换为不同的对象时,python如何防止冲突?

使用内存位置作为散列键还有其他风险吗?

【问题讨论】:

    标签: python python-3.x dictionary object hash


    【解决方案1】:

    我认为您是在谈论对象的 id,而不是其内存地址本身。它们在 CPython 中是一样的,但这是一个实现细节。

    如果是这样,那么文档会回答您的问题:

    id(object)

    返回对象的“身份”。这是一个整数,保证此对象在其生命周期内是唯一且恒定的。生命周期不重叠的两个对象可能具有相同的id() 值。

    CPython 实现细节:这是内存中对象的地址。

    (加粗)

    换句话说,它防止碰撞。

    【讨论】:

      猜你喜欢
      • 2011-03-29
      • 1970-01-01
      • 2013-02-24
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 2014-09-01
      相关资源
      最近更新 更多