.. productionlist:: python-grammar
match_stmt: 'match' `subject_expr` ":" NEWLINE INDENT `case_block`+ DEDENT
- subject_expr: `star_named_expression` "," `star_named_expressions`?
- : | `named_expression`
- case_block: 'case' `patterns` [`guard`] ":" `block`
+ subject_expr: `!star_named_expression` "," `!star_named_expressions`?
+ : | `!named_expression`
+ case_block: 'case' `patterns` [`guard`] ":" `!block`
.. note::
This section uses single quotes to denote
.. index:: ! guard
.. productionlist:: python-grammar
- guard: "if" `named_expression`
+ guard: "if" `!named_expression`
A ``guard`` (which is part of the ``case``) must succeed for code inside
the ``case`` block to execute. It takes the form: :keyword:`if` followed by an
items, as for a fixed-length sequence.
.. note:: The length of the subject sequence is obtained via
- :func:`len` (i.e. via the :meth:`__len__` protocol). This length may be
- cached by the interpreter in a similar manner as
+ :func:`len` (i.e. via the :meth:`~object.__len__` protocol).
+ This length may be cached by the interpreter in a similar manner as
:ref:`value patterns <value-patterns>`.
These represent a mutable set. They are created by the built-in :func:`set`
constructor and can be modified afterwards by several methods, such as
- :meth:`~set.add`.
+ :meth:`add <frozenset.add>`.
Frozen sets
* - .. attribute:: type.__firstlineno__
- The line number of the first line of the class definition,
including decorators.
- Setting the :attr:`__module__` attribute removes the
+ Setting the :attr:`~type.__module__` attribute removes the
:attr:`!__firstlineno__` item from the type's dictionary.
.. versionadded:: 3.13
When implementing a class that emulates any built-in type, it is important that
the emulation only be implemented to the degree that it makes sense for the
object being modelled. For example, some sequences may work well with retrieval
-of individual elements, but extracting a slice may not make sense. (One example
-of this is the :class:`~xml.dom.NodeList` interface in the W3C's Document
-Object Model.)
+of individual elements, but extracting a slice may not make sense.
+(One example of this is the :ref:`NodeList <dom-nodelist-objects>` interface
+in the W3C's Document Object Model.)
.. _customization:
.. versionadded:: 3.6
-When a class is created, :meth:`type.__new__` scans the class variables
+When a class is created, :meth:`!type.__new__` scans the class variables
and makes callbacks to those with a :meth:`~object.__set_name__` hook.
.. method:: object.__set_name__(self, owner, name)
Mutable sequences should provide methods :meth:`~sequence.append`,
:meth:`~sequence.count`, :meth:`~sequence.index`, :meth:`~sequence.extend`,
:meth:`~sequence.insert`, :meth:`~sequence.pop`, :meth:`~sequence.remove`,
-:meth:`~sequence.reverse` and :meth:`~sequence.sort`,
+:meth:`~sequence.reverse` and :meth:`!sort`,
like Python standard :class:`list` objects.
Finally, sequence types should implement addition (meaning concatenation) and
multiplication (meaning repetition) by defining the methods