Skip to content

Commit 49005e4

Browse files
[3.11] pythongh-112331: Fix reference manual description of attribute lookup mechanics (pythongh-112375) (pythongh-112413)
1 parent d9254f9 commit 49005e4

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

Doc/reference/expressions.rst

+12-6
Original file line numberDiff line numberDiff line change
@@ -806,12 +806,18 @@ An attribute reference is a primary followed by a period and a name:
806806

807807
The primary must evaluate to an object of a type that supports attribute
808808
references, which most objects do. This object is then asked to produce the
809-
attribute whose name is the identifier. This production can be customized by
810-
overriding the :meth:`__getattr__` method. If this attribute is not available,
811-
the exception :exc:`AttributeError` is raised. Otherwise, the type and value of
812-
the object produced is determined by the object. Multiple evaluations of the
813-
same attribute reference may yield different objects.
814-
809+
attribute whose name is the identifier. The type and value produced is
810+
determined by the object. Multiple evaluations of the same attribute
811+
reference may yield different objects.
812+
813+
This production can be customized by overriding the
814+
:meth:`~object.__getattribute__` method or the :meth:`~object.__getattr__`
815+
method. The :meth:`!__getattribute__` method is called first and either
816+
returns a value or raises :exc:`AttributeError` if the attribute is not
817+
available.
818+
819+
If an :exc:`AttributeError` is raised and the object has a :meth:`!__getattr__`
820+
method, that method is called as a fallback.
815821

816822
.. _subscriptions:
817823

0 commit comments

Comments
 (0)