]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-103373: Improve documentation for `__mro_entries__` (GH-103374)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 8 Apr 2023 14:16:43 +0000 (07:16 -0700)
committerGitHub <noreply@github.com>
Sat, 8 Apr 2023 14:16:43 +0000 (07:16 -0700)
(cherry picked from commit 0ba0ca05d2b56afa0b055db02233e703fe138918)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Doc/reference/datamodel.rst

index 87c538f6f2c17fb5a2eceb00e4ad775132c05c2e..b086be26999ce173bf6c435296b0b36e73884aaa 100644 (file)
@@ -2085,11 +2085,15 @@ When a class definition is executed, the following steps occur:
 Resolving MRO entries
 ^^^^^^^^^^^^^^^^^^^^^
 
-If a base that appears in class definition is not an instance of :class:`type`,
-then an ``__mro_entries__`` method is searched on it. If found, it is called
-with the original bases tuple. This method must return a tuple of classes that
-will be used instead of this base. The tuple may be empty, in such case
-the original base is ignored.
+.. method:: object.__mro_entries__(self, bases)
+
+   If a base that appears in a class definition is not an instance of
+   :class:`type`, then an ``__mro_entries__`` method is searched on the base.
+   If an ``__mro_entries__`` method is found, the base is substituted with the
+   result of a call to ``__mro_entries__`` when creating the class.
+   The method is called with the original bases tuple, and must return a tuple
+   of classes that will be used instead of the base. The returned tuple may be
+   empty: in these cases, the original base is ignored.
 
 .. seealso::