[Python-Dev] Strange behavior in Python 2.5a0 (trunk) --- possible error in AST?

Nick Coghlan ncoghlan at gmail.com
Mon Mar 13 13:11:38 CET 2006


Michael Hudson wrote:
> "Travis E. Oliphant" <oliphant.travis at ieee.org> writes:
> 
>> I'm seeing strange behavior in the Python 2.5a0 trunk that is causing 
>> the tests for numpy to fail.  Apparently obj[...] = 1 is not calling 
>> PyObject_SetItem
>>
>> Here is a minimal example to show the error.  Does anyone else see this?
>>
>> class temp(object):
>>         def __setitem__(self, obj, v):
>>             print obj, v
>>
>> mine = temp()
>> mine[...] = 1
> 
> It's a compiler problem:
> 
>>>> dis.dis(compile("mine[...] = 1", '', 'single'))
>   1           0 LOAD_CONST               0 (1)
>               3 LOAD_NAME                0 (mine)
>               6 LOAD_CONST               1 (Ellipsis)
>               9 LOAD_CONST               2 (None)
>              12 RETURN_VALUE        

And how...

   case Ellipsis_kind:
     ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts)
     break;

Just a couple of minor details missing, like, oh, compiling the actual 
subscript operation :)

Bug here: http://www.python.org/sf/1448804

(assigned to myself, since I already wrote a test for it and worked out where 
to fix it)

Cheers,
Nick.

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


More information about the Python-Dev mailing list