]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-112331: Fix reference manual description of attribute lookup mechanics...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 25 Nov 2023 22:26:22 +0000 (23:26 +0100)
committerGitHub <noreply@github.com>
Sat, 25 Nov 2023 22:26:22 +0000 (22:26 +0000)
Doc/reference/expressions.rst

index 9207fd3f3c02ee87ffb4c1dbc323b6cc1b547507..7130aa2f6b7b7b65d0b69370a0475bd90c81f84a 100644 (file)
@@ -806,12 +806,18 @@ An attribute reference is a primary followed by a period and a name:
 
 The primary must evaluate to an object of a type that supports attribute
 references, which most objects do.  This object is then asked to produce the
-attribute whose name is the identifier.  This production can be customized by
-overriding the :meth:`__getattr__` method.  If this attribute is not available,
-the exception :exc:`AttributeError` is raised.  Otherwise, the type and value of
-the object produced is determined by the object.  Multiple evaluations of the
-same attribute reference may yield different objects.
-
+attribute whose name is the identifier. The type and value produced is
+determined by the object.  Multiple evaluations of the same attribute
+reference may yield different objects.
+
+This production can be customized by overriding the
+:meth:`~object.__getattribute__` method or the :meth:`~object.__getattr__`
+method.  The :meth:`!__getattribute__` method is called first and either
+returns a value or raises :exc:`AttributeError` if the attribute is not
+available.
+
+If an :exc:`AttributeError` is raised and the object has a :meth:`!__getattr__`
+method, that method is called as a fallback.
 
 .. _subscriptions: