Call variable as a function

Steve Holden steve at holdenweb.com
Thu Mar 3 23:06:18 CET 2005


Chmouel Boudjnah wrote:
> Hey,
> 
> It's look simple for most of the people here but i can't figure out to 
> that.
> 
> If i have :
> 
> def test():
>     print "foo"
> 
> and:
> 
> var = "test"
> 
> how do i call function test from var, kind of ${$var} in some others 
> languages (or eval())
> 
There's always a way:

 >>> def test():
...   print "hello"
...
 >>> var = "test"
 >>> eval("%s()" % var)
hello

But it depends how you are creating the reference to the function. The 
above is required if all you have is a string, but it would also be 
possible to set the variable to the function rather than the function's 
name:

 >>> var = test
 >>> var()
hello
 >>>

Hope this helps.

regards
  Steve
-- 
Meet the Python developers and your c.l.py favorites March 23-25
Come to PyCon DC 2005                      http://www.pycon.org/
Steve Holden                           http://www.holdenweb.com/



More information about the Python-list mailing list