string to function reference

Igor V. Rafienko igorr at
Fri Sep 1 16:20:51 CEST 2000

* Alex Martelli


| The call operation needs to be applied to the function object. The
| reference to the function object is in a dictionary, under a key you
| have (the name you hold). What's so "waay to ugly" about fetching
| the function object from that dictionary, then calling it?

I was hoping there was already a built-in function that did that.
Smth. like (symbol-function)

|     thefun=__dict__[s]
|     thefun()
| You can wrap that in a function, of course (warning, untested):
| def callit(funname,*args,dict=None):
|     if not dict: dict=globals()
|     funobj=dict[funname]
|     return apply(funobj,args)
| so you can say, in your case,
|     callit(s)

Right, I could do that. I could also make it scan both globals() and
__builtins__ to be more general (the "GB" part of the LGB scope rule).
I was just looking for a simpler way to do that.

Thanks for the suggestion.

"This 'love' intrigues me -- teach me to fake it"
	-- Dr. Zoidberg from "Why must I be a Crustacean in love?"

More information about the Python-list mailing list