>>> print c <__main__.Car object at 0x00F7BCB0> >>> print binding.getParentComponent(c.wheel) <__main__.Car object at 0x00F7BCB0> >>> class Transport(Car): cargo = binding.Make(Car) >>> t=Transport() >>> print t <__main__.Transport object at 0x00FA1670> >>> print binding.getRootComponent(t.cargo.wheel) <__main__.Transport object at 0x00FA1670> >>> print binding.getComponentName(t.cargo.wheel) wheel >>> print binding.getComponentPath(t.cargo.wheel) /cargo/wheel >>> print binding.getComponentPath(t.wheel) /wheel >>> print t.cargo <__main__.Car object at 0x00FABB70> >>> print binding.getParentComponent(t.cargo.wheel) <__main__.Car object at 0x00FABB70> >>> binding.lookupComponent(t,'/cargo/wheel') <__main__.Wheel object at 0x00FAB900>
As you can see, binding.getParentComponent, binding.getRootComponent, binding.lookupComponent, binding.getComponentName, and binding.getComponentPath do pretty much as you would expect from their names. (One thing we didn't show, however, was that binding.getComponentPath doesn't actually return a string, but a binding.ComponentName instance that just looks like a string when printed. More about this later.)