Martin v. Löwis wrote:
> [EMAIL PROTECTED] schrieb:
>>         >>> class X(object):
>>         ...   def __hash__(self): return id(self)
>>         ...
>>         >>> hash (X())
>>         Traceback (most recent call last):
>>           File "<stdin>", line 1, in <module>
>>         OverflowError: long int too large to convert to int
> 
> Yes, this comes from id() now always returning positive integers,
> which might be a long if the object pointer is > MAXINT
> 
> I think both instance_hash and slot_tp_hash should be changed
> to just truncate long ints to the range LONG_MIN..LONG_MAX

Couldn't they be changed to invoke long's own hash method when a long object 
is returned from __hash__?

Cheers,
Nick.

-- 
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to