unexpected wrote: > I have a program where based on a specific value from a dictionary, I > call a different function. Currently, I've implemented a bunch of > if..elsif statements to do this, but it's gotten to be over 30 right > now and has gotten rather tedious. Is there a more efficient way to do > this? > > Code: > > value = self.dictionary.get(keyword)[0] > > if value == "something": > somethingClass.func() > elsif value == "somethingElse": > somethingElseClass.func() > elsif value == "anotherthing": > anotherthingClass.func() > elsif value == "yetanotherthing": > yetanotherthingClass.func() > > Is it possible to store these function calls in a dictionary so that I > could just call the dictionary value?
Yup. dispatch = dict( something = somethingClass.func, somethingElse = somethingElseClass.func, anotherthing = anotherthingClass.func, yetanotherthing = yetanotherthingClass.func ) def default(): pass # call it like this dispatch.get(switch_value, default)() -- http://mail.python.org/mailman/listinfo/python-list