Re: Using __hash__ functions for custom classes

Phil Thompson <[email protected]> Tue, 31 Mar 2020 09:29:09 +0100
Newsgroups gmane.comp.python.pyqt-pykde
Message-ID <[email protected]>
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
_______________________________________________
PyQt mailing list    [email protected]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt