[Python-Dev] PEP 203 Augmented Assignment
Ka-Ping Yee
ping@lfw.org
Thu, 27 Jul 2000 10:31:56 -0700 (PDT)
On Thu, 27 Jul 2000, Ka-Ping Yee wrote:
> So, how about:
>
> __get__(index, ...) # I want an ITEM.
> __getslice__(slice-object, ...) # I want a SLICE.
Addendum:
For __set__ and __setslice__, since there may be a variable number
of index arguments, it seems the value to set must *precede* the
indices. The full interface:
__get__(*indices)
__set__(value, *indices)
__del__(*indices)
__getslice__(*slices)
__setslice__(value, *slices)
__delslice__(*slices)
I prefer putting the indices last to passing in a tuple of indices
for the following reasons:
1. It would be annoying and slightly slower to have to
declare __get__((index,)) instead of __get__(index).
2. I want to encourage prediction of the number of indices.
Since most multidimensional types are likely to have a
fixed number of dimensions, it's better to have an
interface look like, e.g.
__get__(x, y, z) # Clearly a 3-dimensional array!
instead of
__get__(indices) # Don't know how many dimensions.
The error is caught earlier, and the expectations of
the programmer are more visible.
To implement a variable number of dimensions, of course
one can always write
__get__(*indices)
but this would not be the conventional thing to write:
it would make clear that there is something special
going on here.
-- ?!ng