switch
Matt McCredie
mccredie at gmail.com
Wed Dec 9 13:02:21 EST 2009
hong zhang <henryzhang62 <at> yahoo.com> writes:
>
> List,
>
> Python does not have switch statement. Any other option does similar work?
> Thanks for help.
>
> --henry
>
>
I see a couple of people have mentioned using a dictionary. If the value that
you are switching on is a string, or could be made into one, you can use a
variant of the command dispatch pattern.
class MyCommandDispatcher(object):
def do_a(self):
# do stuff
def do_b(self):
# do stuff
def do_5(self):
# do stuff
def default(self):
# do stuff
def switch(self, option):
getattr(self, 'do_' + str(option), self.default)()
d = MyCommandDispatcher()
d.switch('a')
d.switch(5)
This isn't _much_ more coding than using the dictionary method, and is pretty
readable. This is also a common pattern in python.
Matt
More information about the Python-list
mailing list