Why property works only for objects?

Shalabh Chaturvedi shalabh at cafepy.com
Sat Mar 11 22:56:21 CET 2006

Michal Kwiatkowski wrote:
> Alex Martelli napisał(a):
>>>>> obj.__dict__
>> {}
>> ...the presence of '__dict__' as an entry in C is confusing the issue,
>> because that's what you get in this case as obj.__dict__.
> It still bugs me. What's the actual procedure when doing attribute
> assignment? I understand it like this:
> obj.attr = value
>  * if instance class has __setattr__, call it
>    * else: if class has an attribute with name "attr" check if it's a
>      descriptor; when it's overriding descriptor, call its __set__
>      method, otherwise raise AttributeError
>      * else: bind "attr" as object attribute

Here is a step-by-step description of what happens when you set or get 
an attribute on an object:



More information about the Python-list mailing list