I'm not completely sure if this is what you want, but here is a suggestion on how you could document your classes:
class Body(object):
"""Representation of a geometric body.
:ivar surface: a :class:`example.Surface` instance
Usage example:
>>> mybody = Body()
>>> mybody.surface.get_surface_area()
>>> 4
Another way of doing it:
>>> mybody = Body()
>>> mysurface = Surface(mybody)
>>> mysurface.get_surface_area()
>>> 4
"""
def __init__(self):
self.surface = Surface(self)
class Surface(object):
"""Representation of a geometric surface.
:ivar body: The supplied :class:`example.Body` instance
"""
def __init__(self, body):
self.body = body
def get_surface_area(self):
""" Calculate surface area of the body """
print 4