mirror of
https://github.com/python/cpython.git
synced 2025-11-02 11:08:57 +00:00
merge
This commit is contained in:
commit
e238b889eb
1 changed files with 14 additions and 3 deletions
|
|
@ -210,25 +210,36 @@ here is a pure Python equivalent::
|
||||||
self.fget = fget
|
self.fget = fget
|
||||||
self.fset = fset
|
self.fset = fset
|
||||||
self.fdel = fdel
|
self.fdel = fdel
|
||||||
|
if doc is None and fget is not None:
|
||||||
|
doc = fget.__doc__
|
||||||
self.__doc__ = doc
|
self.__doc__ = doc
|
||||||
|
|
||||||
def __get__(self, obj, objtype=None):
|
def __get__(self, obj, objtype=None):
|
||||||
if obj is None:
|
if obj is None:
|
||||||
return self
|
return self
|
||||||
if self.fget is None:
|
if self.fget is None:
|
||||||
raise AttributeError, "unreadable attribute"
|
raise AttributeError("unreadable attribute")
|
||||||
return self.fget(obj)
|
return self.fget(obj)
|
||||||
|
|
||||||
def __set__(self, obj, value):
|
def __set__(self, obj, value):
|
||||||
if self.fset is None:
|
if self.fset is None:
|
||||||
raise AttributeError, "can't set attribute"
|
raise AttributeError("can't set attribute")
|
||||||
self.fset(obj, value)
|
self.fset(obj, value)
|
||||||
|
|
||||||
def __delete__(self, obj):
|
def __delete__(self, obj):
|
||||||
if self.fdel is None:
|
if self.fdel is None:
|
||||||
raise AttributeError, "can't delete attribute"
|
raise AttributeError("can't delete attribute")
|
||||||
self.fdel(obj)
|
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
|
The :func:`property` builtin helps whenever a user interface has granted
|
||||||
attribute access and then subsequent changes require the intervention of a
|
attribute access and then subsequent changes require the intervention of a
|
||||||
method.
|
method.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue