from automat import MethodicalMachine class Led(object): _machine = MethodicalMachine() @_machine.state() def led_on(self): "led is on" @_machine.state(initial=True) def led_off(self): "led is off" @_machine.input() def turn_on(self): "turn the led on" @_machine.output() def _light(self): print("light") led_off.upon(turn_on, enter=led_on, outputs=[_light]) led = Led() led.turn_on()