'''a very simple idiom for a state machine''' from random import random from time import sleep # Each of the state functions below performs some action and then implements # logic to choose next state. Each state function returns the next state. def state0(): print "state0" # delay and decision path to simulate some application logic sleep(.5) if random()>.5: return state1 else: return state2 def state1(): print "state1" # delay and decision path to simulate some application logic sleep(.5) if random()>.5: return state0 else: return state2 def state2(): print "state2" # delay and decision path to simulate some application logic sleep(.5) if random()>.5: return state0 else: return None state=state0 # initial state while state: state=state() # launch state machine print "Done with states"