[Python-checkins] cpython (2.7): #16440: fix exception type and clarify example.

ezio.melotti python-checkins at python.org
Fri Nov 9 00:09:49 CET 2012


http://hg.python.org/cpython/rev/8b181c75792f
changeset:   80320:8b181c75792f
branch:      2.7
user:        Ezio Melotti <ezio.melotti at gmail.com>
date:        Fri Nov 09 01:03:44 2012 +0200
summary:
  #16440: fix exception type and clarify example.

files:
  Doc/library/stdtypes.rst |  27 +++++++++++++++++----------
  1 files changed, 17 insertions(+), 10 deletions(-)


diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2878,16 +2878,23 @@
 Like function objects, methods objects support getting arbitrary attributes.
 However, since method attributes are actually stored on the underlying function
 object (``meth.im_func``), setting method attributes on either bound or unbound
-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::
-
-   class C:
-       def method(self):
-           pass
-
-   c = C()
-   c.method.im_func.whoami = 'my name is c'
+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.whoami = 'my name is method'  # can't set on the method
+   Traceback (most recent call last):
+     File "<stdin>", line 1, in <module>
+   AttributeError: 'instancemethod' object has no attribute 'whoami'
+   >>> c.method.im_func.whoami = 'my name is method'
+   >>> c.method.whoami
+   'my name is method'
+
 
 See :ref:`types` for more information.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list