diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index cd07fa70954..27be4f50a43 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -3343,16 +3343,22 @@ arg-n)``. Like function objects, bound method objects support getting arbitrary attributes. However, since method attributes are actually stored on the underlying function object (``meth.__func__``), setting method attributes on -bound methods is disallowed. Attempting to set a method attribute results in a -:exc:`TypeError` being raised. In order to set a method attribute, you need to -explicitly set it on the underlying function object:: +bound methods is disallowed. Attempting to set an attribute on a method +results in an :exc:`AttributeError` being raised. In order to set a method +attribute, you need to explicitly set it on the underlying function object:: - class C: - def method(self): - pass - - c = C() - c.method.__func__.whoami = 'my name is c' + >>> class C: + ... def method(self): + ... pass + ... + >>> c = C() + >>> c.method.whoami = 'my name is method' # can't set on the method + Traceback (most recent call last): + File "", line 1, in + AttributeError: 'method' object has no attribute 'whoami' + >>> c.method.__func__.whoami = 'my name is method' + >>> c.method.whoami + 'my name is method' See :ref:`types` for more information.