>>> getattr(a.b, 'prop')
1234
>>> getattr(getattr(a,'b'), 'prop')
1234
>>> 
>>> def getattrchain(obj, attlist):
...     if not attlist:
...             return obj
...     else:
...             return getattrchain(getattr(obj, attlist[0]), attlist[1:])
...     
>>> getattrchain(a, ('b', 'prop'))
1234


-- Wade Leftwich
   Ithaca, NY


> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Lloyd
> Kvam
> Sent: Monday, July 23, 2001 4:51 PM
> To: Active Python
> Subject: Using getattr() with "dotted" names
> 
> 
> I have a project where classes may be nested.  The Python 
> interpreter will handle nested instance references without any 
> difficulty (e.g. print a.b.prop).
> 
> Is there a good way to handle attribute references in getattr to 
> get the same effect?
> (e.g. print getattr( a, 'b.prop') )
> 
> class A:
>       pass
> class B:
>       pass
> >>>>>>>>>
> a = A()
> a.b = B()
> a.b.prop = 1234
> print a.b.prop
> <<<<<<<<<  All work OK
> 
> print getattr( a, 'b.prop') does not work.
> 
> 
> -- 
> Lloyd Kvam
> Venix Corp.
> 1 Court Street, Suite 378
> Lebanon, NH 03766-1358
> 
> voice:        603-443-6155
> fax:  801-459-9582
> _______________________________________________
> ActivePython mailing list
> [EMAIL PROTECTED]
> http://listserv.ActiveState.com/mailman/listinfo/activepython
> 
_______________________________________________
ActivePython mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/activepython

Reply via email to