mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +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