This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ojob
Recipients ojob
Date 2021-09-29.15:19:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1632928761.88.0.894816549892.issue45323@roundup.psfhosted.org>
In-reply-to
Content
While testing the `match...case` construction, I get the following behavior with Docker image Python 3.10 rc2-slim:

```python
>>> match "robert":
...     case x if len(x) > 10:
...         print("long nom")
...     case [0, y]:
...         print("point à x nul")
...     case _:
...         print("nothing interesting")
...
nothing interesting
>>> x  # assigned, since matched, even if 'guarded-out'
'robert'
>>> y  # not assigned, because not matched
Traceback (most recent call last):
...
NameError: name 'y' is not defined
>>> _  # normally not assigned, but we get a value?? 😱
'robert'
>>> del _  # but the variable does not even exist!?!?!? 😱😱😱
Traceback (most recent call last):
...
NameError: name '_' is not defined

```

Moreover, if we continue working in the same session by assigning `_` explicitly and playing with `case _`, we don't get any weird behavior anymore, and `_` behaves as a normal variable.

So it seems to me that there is some weird corner case here, that should be adressed.
History
Date User Action Args
2021-09-29 15:19:21ojobsetrecipients: + ojob
2021-09-29 15:19:21ojobsetmessageid: <1632928761.88.0.894816549892.issue45323@roundup.psfhosted.org>
2021-09-29 15:19:21ojoblinkissue45323 messages
2021-09-29 15:19:21ojobcreate