PEP 634: Change so __match_args__ must be a tuple (#1909)

This commit is contained in:
Guido van Rossum 2021-04-05 10:38:02 -07:00 committed by GitHub
parent 0ded16b91e
commit d6359564f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -492,10 +492,10 @@ as follows:
the entire subject; for these types no keyword patterns are accepted.
- The equivalent of ``getattr(cls, "__match_args__", ()))`` is called.
- If this raises an exception the exception bubbles up.
- If the returned value is not a list or tuple, the conversion fails
- If the returned value is not a tuple, the conversion fails
and ``TypeError`` is raised.
- If there are more positional patterns than the length of
``__match_args__``` (as obtained using ``len()``), ``TypeError`` is raised.
``__match_args__`` (as obtained using ``len()``), ``TypeError`` is raised.
- Otherwise, positional pattern ``i`` is converted to a keyword pattern
using ``__match_args__[i]`` as the keyword,
provided it the latter is a string;
@ -513,7 +513,7 @@ positional subpatterns is different:
This behavior is roughly equivalent to the following::
class C:
__match_args__ = ["__match_self_prop__"]
__match_args__ = ("__match_self_prop__",)
@property
def __match_self_prop__(self):
return self