On Jun 20, 9:27 am, MRAB <pyt...@mrabarnett.plus.com> wrote: > Gustavo Narea wrote: > > Hello again, everybody. > > > Thank you very much for your responses. You guessed right, I didn't > > use the __hash__ method (and I forgot to mention that, sorry). > > > And unfortunately, I think I can't make them hashable, because the > > objects are compared based on their attributes, which are in turn > > other kind of objects compared based on other attributes. All these > > class instances are compared with __eq__/__ne__ and they wrap > > relatively complex data which would be hard to attempt to represent > > them unambiguously using a 32-bit integer. That's why I'm afraid I > > cannot use hashables. > > > I guess I'll have to use something like the function of my first > > post. :( > > A hash doesn't have to be unambiguous. It's just a way to reduce the > number of equality checks that have to be made. > > Could you create a hash from a tuple of attributes? > > If all else fails you could define a hash function that returns a > constant.
Ooo sneaky. +1 fancy. > You would, however, lose the speed advantage that a hash > gives in narrowing down the possible matches. Are there /any/ immutable members of the objects? -- http://mail.python.org/mailman/listinfo/python-list