Le Thursday 26 June 2008 13:06:53 Rotlaus, vous avez écrit : > Hello, > > lets assume i have some classes: > > class A(object): > def __init__(self): > b = B() > > class B(object): > def __init__(self): > c = C() >
note you're just defining some local variables here, should be self.b = B() and self.c = C(). > class C(object): > def __init__(self): > pass > > and now i wanna do something like this: > > a=A() > c=getattr(a, 'b.c') > > I know this doesn't work, but what can i do to get this or a similar > functionality to get it work for this sample and for even more nested > classes? > You could do it manually: c = getattr(getattr(a, 'b'), 'c') or make it automatic: def get_dotted_attr (obj, dotted_attr) : for attr in dotted_attr.split('.') : obj = getattr(obj, attr) return obj a = A() print 'a.b.c = %s' % get_dotted_attr(a, 'b.c') -- Cédric Lucantis -- http://mail.python.org/mailman/listinfo/python-list