From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Tue, 6 Apr 2021 16:03:00 +0000 (+0800) Subject: Update pattern matching docs for changes to the PEP (#25185) X-Git-Tag: v3.10.0b1~389 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5143fd15b4fe5e122c79e3be4745031f17bb4d8e;p=thirdparty%2FPython%2Fcpython.git 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.) --- diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index e13d6dd95620..aae7c7f68b6e 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 dfe5eb6857c0..9c819b7ae6d2 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