Why do descriptors (and thus properties) only work on attributes.

Daniel Dittmar daniel.dittmar at sap.corp
Mon Feb 28 05:06:56 EST 2005


Antoon Pardon wrote:
>>>Can anyone explain why descriptors only work when they are an attribute
>>>to an object or class.  I think a lot of interesting things one can
>>>do with descriptors would be just as interesting if the object stood
>>>on itself instead of being an attribute to an other object.
>>
>>How would that work?
> 
> 
> Well AFAIU a descriptor is an object with at least one method out of
> __get__, __set__ or __del__. I don see why implicitly calling one
> of these methods would be any more difficult when they are autonomous
> objects than when they are attributes.

I guess properties are really a feature of the class, not of the 
attribute. Certain operations on objects of the class (getattr, setattr, 
delattr) have to be intercepted. If you want to have this for general 
variable access, you 'd have to intercept all accesses to local and 
module name spaces. This slows things down a lot. And many think that 
overloading assignment is a bad idea. You probably find some dicussions 
when searching for "overloading assignment" in the newsgroup archive.

 >>>to an object or class.  I think a lot of interesting things one can

As in the chinese curse "May you live in interisting times"?

Daniel



More information about the Python-list mailing list