我需要将一些python2代码移植到python3。
在那里,我发现创建了dict
QTreeWidgetItem
。在Python 2中,这个工作正常,因为该对象是可清除的。但是在python 3中,你会收到一个错误,因为__hash__
没有实现:
$ python2
>>> from PyQt5 import QtWidgets
>>> x = QtWidgets.QTreeWidgetItem()
>>> foo = {x: 23}
>>> hash(x)
-9223363252877437056
$ python3
>>> from PyQt5 import QtWidgets
>>> x = QtWidgets.QTreeWidgetItem()
>>> hash(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'QTreeWidgetItem'
我认为这是一个错误或是否有任何原因,我没有看到?
PyQt5文档没有提到这方面的任何内容,对于QTreeWidgetItem
,只有C ++文档可用,这在这个特定于python的情况下没有帮助。