On Sat, Feb 29, 2020 at 4:37 AM Alex Hall <[email protected]> wrote:

> It seems like most of this would be very easy to implement yourself with
> the exact semantics that you prefer and find most intuitive, while other
> people might have different expectations.


I have to agree here. You are proposing that a slice object be treated as a
general purpose interval, but that is not, in fact what they are. This is
made clear by: " Presumably, these operations would raise exceptions when
used with slices that have
 step values other than None."

and also: "whereas a slice represents a possibly continuous range of any
kind of value to which magnitude is applicable." well, sort of. Given the
implementation and duck typing, I suppose that's true. But in fact, slices
were designed for, and are (at least mostly) used to, well, slice
sequences, which are always integer indexes, and hav semantics specific to
that use case:

In [5]: s = slice(2,-2)


In [6]: s.indices(10)

Out[6]: (2, 8, 1)

and what if you do use non-integers?

In [7]: s = slice(2.2,-2.1)


In [8]: s

Out[8]: slice(2.2, -2.1, None)

In [9]: s.indices(10)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-5c4613d5ef69> in <module>
----> 1 s.indices(10)

TypeError: slice indices must be integers or None or have an __index__
method

In short: slices are for, well, slicing, they are no more general intervals
than range objects :-)

-CHB

-- 
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/VI7HLTD4TT5ZIZUHHBVBZGOLPC3EDH2Y/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to