[Python-ideas] str(slice(10)) should return "slice(10)"

Ivan Levkivskyi levkivskyi at gmail.com
Sun Nov 13 06:25:08 EST 2016


On 13 November 2016 at 04:07, Guido van Rossum <guido at python.org> wrote:

>
> On Sat, Nov 12, 2016 at 5:46 PM, David Mertz <mertz at gnosis.cx> wrote:
>
>> If we *do* want the name 'slice' as the spelling for the thing that can
>> either be called or indexed to create a slice object, we could probably use
>> some boilerplate like this:
>>
>
> I can't stop you from doing that in your own session, but I don't want to
> reuse the builtin slice object for that. If this is so useful with Pandas
> maybe the Pandas library can define its own helper for this purpose.
>

This reminds me @ vs .dot() for matrix multiplication a bit. Pandas has
IndexSlicer, NumPy has index_exp, etc. I think it would be nice to have a
simple common way to express this.
But here we have an additional ingredient -- generic types. I think that a
reasonable compromise would be to simply continue the way proposed in
http://bugs.python.org/issue24379 -- just add operator.subscript for this
purpose. Pros:
* subscript is not a class, so that subscript[...] will be not confused
with generics;
* this does not require patching built-ins;
* all libraries that need this will get a "common interface" in stdlib,
operator module seems to be good place for this.

The patch for operator.subscript was already applied, but it is now
reverted because it caused a refleak.
I have submitted a new patch that does not cause refleaks, I just replaced
empty __slots__ with a __setattr__:
it looks like __slots__ are not needed here to save memory (there is only a
singleton instance),
they were used just to create an immutable object.

--
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20161113/cb6cecce/attachment.html>


More information about the Python-ideas mailing list