> Now who's joking?
:-)
> Are you saying that
>
> switch var:
> case 'a':
> print 'a'
> ...
> default:
> print 'default case'
>
> Is less clear and maintainable than
I don;tthink I said (certainly didn't mean) less clear, but
yes it is less maintainable.
But then...
> def do_this_function():
> print 'a'
> ....
> ftable = { 'a' : do_this_function,
> 'b' : do_that_function,
> 'c' : do_that_function,
> 'd' : do_pass_function }
> ftable.get(var, do_default_function)()
I did also say that it was best with proper lambdas
ftable = {'a' : lambda: print 'a',
'b' : lambda: print 'b'
etc///
and I'd code the calling section:
try: ftable[value]()
except KeyError: doDefaultFunction()
Its more maintainable because even if the switches proliferates
as they tend to do, the dictionary stays in one place and the
calling code never needs changing. So the changes are much
more localised. And of course the more complex the case
actions are, the more effective the dictionary/function
approach becomes.
Alan G.
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor