You could overload __getattr__ (might have to play around a bit to make sure any possible AttributeError's look right, but the basic idea is here)<div><br></div><div><div>class A(object):</div><div>  # ...</div><div>  def __getattr__(self, name):</div>
<div>      try:</div><div>        return object.__getattribute__(self, name)</div><div>      except AttributeError:</div><div>        if '.' in name:</div><div>          attrs = name.split('.')</div><div>          first = object.__getattribute__(self, attrs[0])</div>
<div>          return getattr(first, '.'.join(attrs[1:]))</div><div>        raise<br><div><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div class="AppleOriginalContents"><div><br></div><div><div>>>> a = A()</div><div>>>> a.b = A()</div><div>>>> a.b.c = A()</div><div>>>> a.b.c.d = A()<br></div><div>>>> getattr(a, 'b.c.d')</div>
<div><__main__.A object at 0x67f50></div><div><br></div><div><div><br></div></div><div><br></div></div><div><br class="Apple-interchange-newline">On 26 Jun 2008, at 04:06, Rotlaus wrote:</div><blockquote type="cite">
<div>Hello,<br><br>lets assume i have some classes:<br><br>class A(object):<br>   def __init__(self):<br>       b = B()<br><br>class B(object):<br>   def __init__(self):<br>       c = C()<br><br>class C(object):<br>   def __init__(self):<br>
       pass<br><br>and now i wanna do something like this:<br><br>a=A()<br>c=getattr(a, 'b.c')<br><br>I know this doesn't work, but what can i do to get this or a similar<br>functionality to get it work for this sample and for even more nested<br>
classes?<br><br>Kind regards,<br><br>Andre<br>--<br><a href="http://mail.python.org/mailman/listinfo/python-list">http://mail.python.org/mailman/listinfo/python-list</a><br></div><div><br></div></blockquote></div></div></span></div>
</div></div>