擅长:python、mysql、java
<p>问题来自<code>threading.py</code>,可以更简单地再现如下:</p>
<pre><code>>>> import threading
>>> class SessionManager(threading.Thread, threading._RLock, dict): pass
...
>>> s = SessionManager()
>>> s.start()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 469, in start
_limbo[self] = self
TypeError: unhashable type: 'SessionManager'
</code></pre>
<p>您可以研究<code>threading.py</code>,以确切地了解<em>为什么</em>线程对象需要是散列的,但是修复也很简单:只需覆盖另外两个方法</p>
^{pr2}$
<p>这使得类的实例可以散列。在</p>