On Tue, Jun 23, 2020 at 10:59 PM Rob Cliffe via Python-Dev <python-dev@python.org> wrote:

>> I also (with others) prefer `else:` or perhaps `case else:` to using
>> the`_` variable.
>> The latter is obscure, and woudn't sit well with code that already
>> uses that variable for its own purposes.
>>
> I think that's done for consistency. '_' is a wildcard and you can have:
>
>     case (_, _):
>
> to match any 2-tuple, so:
>
>     case _:
>
> would match any value, and can thus already serve as the default.
>
Consistency with what?  Where else is `_` currently used as a wildcard?

Calling it a wildcard for the purposes of matching is more about using the terminology someone who wants to match a thing would search for. In other contexts it's called a throwaway, but it serves the exact same purpose. Calling it a throwaway would confuse people who don't know how language features are linked, but just know they want a catchall/wildcard.

I wonder if it's time to officially designate _ as a reserved name.