Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Finite State Machine
- ====================
- API:
- on_enter_<state>()
- on_exit_<state>()
- Machine.is_<state>()
- Machine.to_<state>()
- """
- from transitions import Machine
- class Material(Machine):
- states = ['solid', 'liquid', 'gas', 'plasma']
- transitions = [
- ['melt', 'solid', 'liquid'],
- ['evaporate', 'liquid', 'gas'],
- ['sublimate', 'solid', 'gas'],
- ['ionize', 'gas', 'plasma']
- ]
- def __init__(self):
- Machine.__init__(
- self,
- states=Material.states,
- transitions=Material.transitions,
- initial='liquid'
- )
- def on_enter_gas(self):
- print('entering gas state')
- def on_exit_gas(self):
- print('exiting gas state')
- if __name__ == '__main__':
- lump = Material()
- print('current state:', lump.state)
- lump.evaporate()
- print('current state:', lump.state)
- lump.ionize()
- print('current state:', lump.state)
- print('change state back to solid')
- lump.to_solid()
- print('is it in solid state?:', lump.is_solid())
Add Comment
Please, Sign In to add comment