class object's attribute is also the instance's attribute?

Dave Angel d at davea.name
Thu Aug 30 07:53:19 EDT 2012


On 08/30/2012 06:55 AM, 陈伟 wrote:
> when i write code like this:
>
> class A(object):
>      
>     d = 'it is a doc.'
>     
>
> t = A()
>
> print t.__class__.d
> print t.d
>
> the output is same.
>
> so it means class object's attribute is also the instance's attribute. is it right? i can not understand it.

In your example, you have no instance attribute.  So when you use the
syntax to fetch one, the interpreter looks first at the instance,
doesn't find it, then looks in the class, and does.  That is documented
behavior.  Some people use it to provide a kind of default value for
instances, which can be useful if most instances need the same value,
but a few want to overrride it.

-- 

DaveA




More information about the Python-list mailing list