On 2017-12-04 18:54, Jason Maldonis wrote:
I was extending a `list` and am wondering why slicing lists will never
raise an IndexError, even if the `slice.stop` value if greater than the
list length.

Quick example:

my_list = [1, 2, 3]
my_list[:100]  # does not raise an IndexError, but instead returns the full
list

Is there any background on why that doesn't raise an IndexError? Knowing
that might help me design my extended list class better. For my specific
use case, it would simplify my code (and prevent `if isinstance(item,
slice)` checks) if the slicing raised an IndexError in the example I gave.

Have you ever used a language that does that?

I have.

The String class in the C# language does that, and it's /really/ annoying.

I have to add extra code to prevent such exceptions.

In practice, I find that the way that Python does it is much nicer. (And Python isn't unique in this respect, either.)
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to