【发布时间】:2016-12-20 21:31:53
【问题描述】:
我有一个以对象实例为键的字典:
outputs = {instance1:instance1.id, instance2:instance2.id}
当我从字典外删除对象时,对应的键没有从字典中删除,这不是我所期望的。
我想要实现的是,当从字典外部删除对象时,键也从字典中消失。
【问题讨论】:
-
删除对象是什么意思?向我们展示不起作用的代码。
-
那是因为 instance1 或 instance2 没有在字典中引用,而是计算并存储了它们的哈希值以供查找。
-
这些对象的引用计数不能降为零,因为您在字典中有对它们的引用。如果您需要不同的行为,请将密钥设为 weak reference。
-
为什么需要map来查找实例的id?你不能只访问 instance.id 吗?
-
也许你想要WeakKeyDictionary?您还没有定义“从字典外部删除对象”的含义。
标签: python dictionary instance