On Dec 14, 7:35 pm, Matimus <[EMAIL PROTECTED]> wrote: > On Dec 14, 8:52 am, [EMAIL PROTECTED] wrote: > > > > > Dear list, > > I'm writing very simple state machine library, like this: > > > _state = None > > > def set_state(state): > > global _state > > _state = state > > > def get_state(): > > print _surface > > > but I hate to use global variable. So, please, is there a better way > > of doing this? All I want is that a user has to type as little as > > possible, like: > > > from state_machine import * > > set_state(3) > > get_state() > > > I.e., nothing like: > > import state_machine > > my_machine = state_machine.new_machine() > > my_machine.set_state(3) > > my_machine.get_state() > > > Thanks, in advance! > > Personally I _would_ do it the second way. That seems to be the most > appropriate way to do it. However, you can do it the second way and > still get the functionality you desire. > > [code in state_machine.py] > class StateMachine(object): > def __init__(self, state=None): > if state is None: > state = "DEFAULT_INIT_STATE" > self._state = state > > def get_state(self): > # print self._surface > return self._state > > def set_state(self, state): > self._state = state > > _sm = StateMachine() > set_state = _sm.set_state > get_state = _sm.get_state > [/code] > > Matt
Thanks a lot! This is precisely what I had on my mind. -- http://mail.python.org/mailman/listinfo/python-list