Jim Morcombe wrote:
> In a program, I want to set some kind of variable or object to 
> indicate what "mode" the program is currently in.
> What is the most elegant way of doing this?
>  
> Jim
> ---------------------------------------------------------------------------
> constant: moving = "m"
> constant: inserting = "i"
> constant:jumping = "j"
> .
> .
> action = moving
> .
> .
> .
> if action == jumping:
>         jumpSomewhere()
> elseif action == moving:
>         moveSomewhere()
> elseif action == inserting:
>         insertSomething()
> ------------------------------------------------------------------------
1 - I see no value in introducing variables. I'd just use string constants:

action = "moving"
.
.
if action == "jumping":

etc.


2 - It is common in Python to use a dictionary to map the constants to 
the functions instead of if-elif statements:

actions = dict( jumping = jumpSomewhere, 
                moving = moveSomewhere, 
                inserting = insertSomething)


the entire if-elif construct now becomes:

actions[action]()

adding new action-function pairs is now a lot easier.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to