dynamic class/module use? (like Java's forName)
Terry Reedy
tjreedy at udel.edu
Sat Jul 17 23:21:59 EDT 2004
"Alex Hunsley" <lard at tardis.ed.ac.molar.uk> wrote in message
news:8glKc.31979$v7.20488 at fe2.news.blueyonder.co.uk...
>
> if (actionString == "blah"):
> blahThang = blah(constructor stuff)
> blahThang.doSomething()
> else if (actionString == "blah2"):
> blahThang2 = blah2(constructor stuff)
> blahThang2.doSomething()
> else if (actionString == "blah3"):
> blahThang3 = blah3(constructor stuff)
> blahThang3.doSomething()
> else if (actionString == "blah2"):
> # etc etc
The Python idiom for something like the above is to use a dict instead of
if/else.
It is especially useful when you want to add alternatives at runtime.
Something like
actions = { 'blah':blah, 'blah2', blah2, 'blah3':blah3, ...}
# easily extended at runtime
...
actions[actionString](constructor_stuff).doSomething
Terry J. Reedy
More information about the Python-list
mailing list