Dynamic function calling
bk at xk7.com
Fri Sep 1 16:22:35 CEST 2000
> I'm wondering if it is possible to call functions just by having access
> to their name in a string value. Something similar to:
> def test():
> print "test function"
> f = "test"
> apply(f, ())
> This does not work of course, because f does not have the right type.
> Is there a way to get a function object from the name (string)?
If you are in the same module as the function you can call through locals:
locals() ['test'] ()
or, breaking down the steps
mydict = locals()
myfunc = mydict ['test']
If it's in another module, say, foo, you just say:
foo.__dict__ ['test'] ()
More information about the Python-list