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

陈伟 chenwei.address at gmail.com
Thu Aug 30 14:57:32 CEST 2012


在 2012年8月30日星期四UTC+8下午7时54分35秒,Dave Angel写道:
> 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
thank you very much.




More information about the Python-list mailing list