En Fri, 11 May 2007 19:17:57 -0300, elventear <[EMAIL PROTECTED]>  
escribió:

> I am runing into recursion limit problems. I have found that the
> culprit was related to the __hash__ function that I had assigned to
> the objects that were added to a set.

As T. Reedy said, probably you have a recursive structure.

These comments about __hash__, mutability and dict behavior are applicable  
to sets too <http://docs.python.org/ref/customization.html#l2h-196> :

"The only required property is that objects which compare equal have the  
same hash value; it is advised to somehow mix together (e.g., using  
exclusive or) the hash values for the components of the object that also  
play a part in comparison of objects. If a class does not define a  
__cmp__() method it should not define a __hash__() operation either; if it  
defines __cmp__() or __eq__() but not __hash__(), its instances will not  
be usable as dictionary keys. If a class defines mutable objects and  
implements a __cmp__() or __eq__() method, it should not implement  
__hash__(), since the dictionary implementation requires that a key's hash  
value is immutable (if the object's hash value changes, it will be in the  
wrong hash bucket)."

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to