[PyQt] Using __hash__ functions for custom classes
Phil Thompson
phil at riverbankcomputing.com
Tue Mar 31 09:29:09 BST 2020
On 31/03/2020 01:58, Stephen Knox wrote:
> Noob question here.
>
> Is there any guidance on how to implement __hash__ functions for custom
> classes. Should they be generated automatically if there is a qHash
> function?
>
> I am trying specifically to debug this issue:
> https://github.com/qgis/QGIS/issues/29225, which is caused by the
> QgsActionScope class not having a hash function. There is an __eq__
> function but no __hash__ function.
>
> Code is at
> https://github.com/qgis/QGIS/blob/master/src/core/qgsactionscope.cpp,
> https://github.com/qgis/QGIS/blob/master/src/core/qgsactionscope.h and
> https://github.com/qgis/QGIS/blob/master/python/core/auto_generated/qgsactionscope.sip.in
> .
>
> I have tried implementing a special-method in the sip.in file but can't
> seem to get the syntax right, and I am unsure whether this is necessary
> or
> not.
You have to implement __hash__ yourself where you need it. There are
plenty of examples in the PyQt .sip files.
Phil
More information about the PyQt
mailing list