[Python-ideas] More useful slices
Mark Lawrence
breamoreboy at yahoo.co.uk
Mon Feb 2 19:38:30 CET 2015
On 02/02/2015 18:00, Skip Montanaro wrote:
> On Mon, Feb 2, 2015 at 9:29 AM, Neil Girdhar <mistersheik at gmail.com> wrote:
>> This proposal is definitely *possible*, but is the only argument in
>> its favor saving 5 characters? You already have the shorthand
>> exactly when you most need it (indexing).
>
> As I indicated in an earlier response, there is some performance value
> to replacing the range function call with this (or other) syntactic
> sugar. While exceedingly rare, there is nothing to prevent a
> programmer from redefining the range builtin function or inserting a
> different version of range() in the local or global scopes:
>
> def my_range(*args):
> # completely ignore args, returning something weird...
> return [1, "a", None, 2]
>
> import __builtin__
> __builtin__.range = my_range
>
> If you have a for loop which uses range():
>
> for i in range(27):
> do something interesting with i
>
> optimizers like PyPy which aim to be precisely compatible with CPython
> semantics must look up "range" every time it occurs and decide if it's
> the real builtin range function, in which case it can emit/execute
> machine code which is something like the C for loop:
>
> for (i=start; i<stop; i+=step) {
> do something interesting with i
> }
>
> or not, in which case it has to call whatever range is, then respond
> with its list of (arbtrary) Python objects.
>
> Syntactic sugar would lock down the standard behavior.
>
> Skip
You (plural) can debate this until the cows come home, but as the BDFL
rejected it a couple of hours ago it strikes me as an all round waste of
time and bandwidth.
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
More information about the Python-ideas
mailing list