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