Avoiding if..elsif statements
Chaz Ginger
cginboston at hotmail.com
Fri Aug 25 19:02:24 EDT 2006
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?
>
Why not do it this way?
foo =
{'something':somethingClass.func,'somethingelse':somethingelseClass.func)
if foo.has_key(value) :
foo[value]()
else :
raise OMG, "%s isn't known" % value
More information about the Python-list
mailing list