Python中文
首页
教程
问答
标签
搜索
登录
注册
python:我的类是dict键。怎样?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<pre><code>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 </code></pre> <p>我怎样才能不出错地实现这一点呢?</p> <p><strong>编辑:</strong><br/> FFFUUU,错误是:<br/> 我试图用A()的另一个实例来获取<code>d[elem2]</code>(而不是<code>elem</code>),但内容相同。(我很惭愧)<br/> 还是。。我该怎么做?重新定义<code>__hash__</code>?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>只要不重写<code>__hash__()</code>和<code>__eq__()</code>方法,您所做的就应该有效。它将使用对象标识作为等式。如果您想要一个不同的相等概念,可以重写类的<code>__hash__()</code>和<code>__eq__()</code>方法。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
2 回答
如何在乒乓球游戏中阻止球
8 回答
如何在乘法和模中不乘空间?
3 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
3 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
2 回答
如何在事件wxWidgets中传递自定义数据
7 回答
如何在事件中使用lambda i=i?
9 回答
如何在事件中心只接收最近的数据
7 回答
如何在事件发生之前保持云函数运行?
6 回答
如何在事件发生后使页面重定向到同一页面
8 回答
如何在事件回调之间保持python生成器的状态
2 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
2 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
7 回答
如何在事件处理程序中访问外部对象?
7 回答
如何在事件循环中将协程打包为正常函数?
3 回答
如何在事件循环之外运行协同程序?
6 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
9 回答
如何在事件文件中只保留一份摘要?
6 回答
如何在事件模板中添加事件
4 回答