【发布时间】:2011-07-10 10:11:51
【问题描述】:
class A():
def __init__(self, data=''):
self.data = data
def __str__(self):
return str(self.data)
d = {}
elem = A()
d[elem] = 'abc'
elem2 = A()
print d[elem2] # KeyError
# actually elem2! was used not elem
如何才能不出错?
我试图用另一个 A() 实例获取 d[elem2](不是 elem),但内容相同。
【问题讨论】:
-
什么错误(消息)?它真的只发生在你访问一个元素时,而不是设置它?您真的(如示例中)在两行中使用相同的实例,还是等于
d[A()] = ...; print d[A()]? -
是的,只在获取时,不设置。编辑:KeyError。
-
@Sergey:你将不得不告诉我们更多关于
A的课程。您是否覆盖了任何特殊方法?发布错误消息时,请提供完整的错误消息,包括回溯。 -
定义了 init 和 str 就像我上面写的那样
-
更新后的代码对我来说运行没有错误。
标签: python dictionary key