better appreciate the point of this example besides demo object framesthis composite window also contains no fewer than five instances of the quitter button we wrote earlier (all of which verify the request and any one of which can end the guiand states button to dump the current values of all the embedded demo objects at once (it calls each object' report methodif it has onehere is sample of the sort of output that shows up in the stdout stream after interacting with widgets on this displaystates output is in boldc:\pp \gui\tourpython demoall_frm py in onmove in onmove demodlgnone democheck demoradioerror demoscale you pressed input result in onmove demodlgnone democheck demoradioinput demoscale you pressed query resultyes in onmove you picked none in onmove you picked :/users/mark/stuff/books/ /pp /dev/examples/pp /launcher py query demodlgnone democheck demoradioquery demoscale importing by name string the only substantially tricky part of this script is its use of python' built-in __import__ function to import module by name string look at the following two lines from the script' addcomponents functionmodule __import__(demopart module demo(rootimport module by name string attach an instance of its demo this is equivalent to saying something like thisimport 'demodlgpart 'demodlgdemo(rootrunning gui code three ways