【发布时间】:2021-07-19 06:09:51
【问题描述】:
所以我今天意识到在 Python 中我们可以使用对象内存地址位置作为字典中的键。
当位于该内存位置的对象被替换为不同的对象时,python如何防止冲突?
使用内存位置作为散列键还有其他风险吗?
【问题讨论】:
标签: python python-3.x dictionary object hash
所以我今天意识到在 Python 中我们可以使用对象内存地址位置作为字典中的键。
当位于该内存位置的对象被替换为不同的对象时,python如何防止冲突?
使用内存位置作为散列键还有其他风险吗?
【问题讨论】:
标签: python python-3.x dictionary object hash
我认为您是在谈论对象的 id,而不是其内存地址本身。它们在 CPython 中是一样的,但这是一个实现细节。
如果是这样,那么文档会回答您的问题:
返回对象的“身份”。这是一个整数,保证此对象在其生命周期内是唯一且恒定的。生命周期不重叠的两个对象可能具有相同的
id()值。CPython 实现细节:这是内存中对象的地址。
(加粗)
换句话说,它不防止碰撞。
【讨论】: