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

Antoon Pardon apardon at forel.vub.ac.be
Mon Feb 28 05:19:46 EST 2005


Op 2005-02-28, Daniel Dittmar schreef <daniel.dittmar at sap.corp>:
> 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.

OK, I can understand this.

> And many think that 
> overloading assignment is a bad idea.

But not bad enough to allow it in some cases?

> You probably find some dicussions 
> when searching for "overloading assignment" in the newsgroup archive.

I'll take a look.

> >>>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"?

Well I think python partly makes the time interesting. So in that
respect we are all cursed.

-- 
Antoon Pardon



More information about the Python-list mailing list