On 3 Nov 2020, at 16:36, Paul Svensson <paul-python@svensson.org> wrote:

On Tue, 3 Nov 2020, Greg Ewing wrote:

On 3/11/20 11:01 am, Ethan Furman wrote:

I believe supporting

    case x, x   # look ma!  no guard!
is a possible future enhancement.

In which case there will be a need for *some* kind of true
"don't care" placeholder. If it's not "_" then it will have
to be something else like "?". And we need to decide about
it now, because once people start using "_" as a wildcard
in patterns, it will be too late to go back.

But will it, really ?
It seems to me, that if we leave the "_" magic out,
and leave "case x, x" to the linters,
that leaves a clear path forward
for whatever can be decided whenever it can be decided.

Leaving this to linters makes it harder to change the behaviour of “case x, x” later.  Also: not everyone uses a linter.

The particular example of “case x, x” also seems to be a bit of a red herring because that scenario is close to regular tuple unpacking. If I read the PEP correctly binding the same name multiple times is also forbidden in more complex scenario’s where multiple binding is not so easily recognised, such as "case Rect(Point(x, y), Size(x, w))”.


Twitter / micro.blog: @ronaldoussoren
Blog: https://blog.ronaldoussoren.net/