[Python-checkins] cpython (3.3): Issue #17351: Modernize the pure Python property() example.

raymond.hettinger python-checkins at python.org
Sun Mar 10 17:42:43 CET 2013


http://hg.python.org/cpython/rev/bb7e01b5d362
changeset:   82584:bb7e01b5d362
branch:      3.3
parent:      82580:f683ca2b30e3
user:        Raymond Hettinger <python at rcn.com>
date:        Sun Mar 10 09:41:18 2013 -0700
summary:
  Issue #17351: Modernize the pure Python property() example.

files:
  Doc/howto/descriptor.rst |  17 ++++++++++++++---
  1 files changed, 14 insertions(+), 3 deletions(-)


diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst
--- a/Doc/howto/descriptor.rst
+++ b/Doc/howto/descriptor.rst
@@ -210,25 +210,36 @@
             self.fget = fget
             self.fset = fset
             self.fdel = fdel
+            if doc is None and fget is not None:
+                doc = fget.__doc__
             self.__doc__ = doc
 
         def __get__(self, obj, objtype=None):
             if obj is None:
                 return self
             if self.fget is None:
-                raise AttributeError, "unreadable attribute"
+                raise AttributeError("unreadable attribute")
             return self.fget(obj)
 
         def __set__(self, obj, value):
             if self.fset is None:
-                raise AttributeError, "can't set attribute"
+                raise AttributeError("can't set attribute")
             self.fset(obj, value)
 
         def __delete__(self, obj):
             if self.fdel is None:
-                raise AttributeError, "can't delete attribute"
+                raise AttributeError("can't delete attribute")
             self.fdel(obj)
 
+        def getter(self, fget):
+            return type(self)(fget, self.fset, self.fdel, self.__doc__)
+
+        def setter(self, fset):
+            return type(self)(self.fget, fset, self.fdel, self.__doc__)
+
+        def deleter(self, fdel):
+            return type(self)(self.fget, self.fset, fdel, self.__doc__)
+
 The :func:`property` builtin helps whenever a user interface has granted
 attribute access and then subsequent changes require the intervention of a
 method.

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


More information about the Python-checkins mailing list