]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-112331: Fix reference manual description of attribute lookup mechanics (gh-112375)
authorRaymond Hettinger <rhettinger@users.noreply.github.com>
Sat, 25 Nov 2023 22:20:53 +0000 (16:20 -0600)
committerGitHub <noreply@github.com>
Sat, 25 Nov 2023 22:20:53 +0000 (16:20 -0600)
Doc/reference/expressions.rst

index 14c2afa15ad7fb9e08b3ba7aed297bc99cf182ca..3f6d5bfafee9d14c21be99cc1ab20636c2d2ba53 100644 (file)
@@ -823,12 +823,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: