I'd like to use Python's built-in set class with a custom class that I've created. If I want to create sets containing instances of my custom class, what functions do I need to implement so that I can perform tests, like set_a - set_b?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
It will work out of the box, however, there might be cases, when it makes sense to overload
__eq__
,__ne__
and__hash__
. By default,__eq__
will compare for object identity. This might not be what you want. In that case, you have to take care that equal object have equal hashes, and, ideally, not equal object have different hashes (although this is not required, it merely reduces collisions). You should always implement__ne__
using__eq__
, unless you have a specific reason to do otherwise (this is done to ensure logical consistency).Also, when overloading
__hash__
, you have to take care that the hash does not change while the object is stored in aset
.If you want to support
-
operation for yourclass
, you can do something like this :__sub__
is called when-
operation is performed.