Shrutarshi Basu wrote: >> This seems kind of strange to me. You want the entire user module to be >> re-run? > > Well perhaps not the entire module, but probably most of it.
How will you know how much to re-run? Reloading a module re-runs *all* of it, including reinitializing any global variables... > Here's an > example. Suppose you want to define a simple obstacle avoidance > behavior, the script should be something similar to: > > import robot > if robot.sensor('front') > 100: > robot.left_turn() A few ideas: - put all the code that should be repeated into a single function and pass that function to a run() function: def actions(): if robot.sensor('front') > 100: robot.left_turn() robot.run(actions) - Give the user direct control of the timing: while robot.is_running(): if robot.sensor('front') > 100: robot.left_turn() time.sleep(1) # or robot.wait() - register event handlers for specific events. This is more complex but it is also a more flexible execution model than polling at timed intervals: def handle_sensor_front(): robot.left_turn() robot.register('sensor', 'front', handle_sensor_front) - have the user subclass robot and implement handler methods: class MyRobot(robot): def handle_sensor_front(self): self.left_turn() You might want to look at Pyro (Python Robotics) to see how others have solved this problem: http://pyrorobotics.org/?page=Pyro Kent > > Defining the sensor() and left_turn() functions is no problem, but > this should be a continuous behavior, hence the need to run it over > and over at certain time intervals. I already have a config.py > (accessed by robot.py and a few other modules) which the user can > modify to set the intervals (and other details). i've also been > thinking about creating a controller.py which handles the repetition > and imports the user's code and runs its functions, but i would still > like to explore this method. > Thanks again, > Basu > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor