[Python-Dev] Please comment on PEP 357 -- adding nb_index slot to PyNumberMethods

Nick Coghlan ncoghlan at gmail.com
Fri Feb 17 11:37:57 CET 2006


Georg Brandl wrote:
> Bernhard Herzog wrote:
>> "Travis E. Oliphant" <oliphant.travis at ieee.org> writes:
>>
>>>     2) The __index__ special method will have the signature
>>>
>>>        def __index__(self):
>>>            return obj
>>>        
>>>        Where obj must be either an int or a long or another object
>>>        that has the __index__ special method (but not self).
>> So int objects will not have an __index__ method (assuming that ints
>> won't return a different but equal int object).  However:
>>
>>>     4) A new operator.index(obj) function will be added that calls
>>>        equivalent of obj.__index__() and raises an error if obj does not
>>>        implement the special method.
>> So operator.index(1) will raise an exception.  I would expect
>> operator.index to be implemented using PyNumber_index.
> 
> I'd expect that __index__ won't be called on an int in the first place.

The PEP has been updated to cover adding the __index__ slot to int/long so 
that "one check finds all". The slot will just get bypassed for ints and longs 
by a lot of the C code in the interpreter.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list