From 5143fd15b4fe5e122c79e3be4745031f17bb4d8e Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 7 Apr 2021 00:03:00 +0800 Subject: Update pattern matching docs for changes to the PEP (#25185) See: - https://github.com/python/peps/pull/1909 (__match_args__ must be a tuple) - https://github.com/python/peps/pull/1908 (allow keyword patterns for int(x) etc.) --- Doc/reference/compound_stmts.rst | 4 ++-- Doc/reference/datamodel.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index e13d6dd..aae7c7f 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -1030,7 +1030,7 @@ subject value: For a number of built-in types (specified below), a single positional subpattern is accepted which will match the entire subject; for these types - no keyword patterns are accepted. + keyword patterns also work as for other types. If only keyword patterns are present, they are processed as follows, one by one: @@ -1057,7 +1057,7 @@ subject value: * If this raises an exception, the exception bubbles up. - * If the returned value is not a list or tuple, the conversion fails and + * If the returned value is not a tuple, the conversion fails and :exc:`TypeError` is raised. * If there are more positional patterns than ``len(cls.__match_args__)``, diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index dfe5eb6..9c819b7 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -2565,7 +2565,7 @@ define a *__match_args__* attribute. .. data:: object.__match_args__ - This class variable can be assigned a tuple or list of strings. When this class is + This class variable can be assigned a tuple of strings. When this class is used in a class pattern with positional arguments, each positional argument will be converted into a keyword argument, using the corresponding value in *__match_args__* as the keyword. The absence of this attribute is equivalent to -- cgit v0.12