Suggested feature: slice syntax within tuples (or even more generally)?

Ian Kelly ian.g.kelly at gmail.com
Thu Feb 14 13:58:06 EST 2013


On Thu, Feb 14, 2013 at 1:03 AM, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
> E.g.:
>
> if x:
>     pass
>
>
> Is that intended as "if slice(x, None, None)" with a missing colon, or
> "if x" with colon supplied?

That's not ambiguous, because the former is simply invalid syntax.
However, consider the following.

if 1: 2:

That could be either a one-line if statement where the condition is 1
and the body is slice(2, None), or it could be the beginning of a
multi-line if block where the condition is slice(1, 2).  If the parser
sees that, should it expect the next line to be indented or not?  If
it relies on indentation to determine this, then it loses some ability
to warn the user of incorrect indentation.

Then we have dictionary literals:

{1:2:3}

Should that be read as dict([(slice(1, 2), 3)]) or dict([(1, slice(2,
3))])?  Or even set([slice(1, 2, 3)])?



More information about the Python-list mailing list