Recursion in compile()
Narendra C. Tulpule
naren at trillium.com
Thu Jul 17 20:37:11 CEST 2003
Steven Taschuk <staschuk at telusplanet.net> wrote in message news:<mailman.1058409301.23691.python-list at python.org>...
> Quoth Narendra C. Tulpule:
> > is there any way to allow recusrion in compile()? Something like:
> > src_code = 'def fact(n):\n\tif n <= 1:\n\t\treturn 1\n\telse:' + \
> > '\n\t\treturn n * fact(n-1)\n\nprint fact(12)\n'
> > cobj = compile(src_code, 'myfile', 'exec')
> > eval(cobj)
> This works fine for me -- it prints 479001600 as expected, on both
> 2.2.2 and 2.3b1. What is the problem you're seeing?
Sorry, you're right, it does work for me.
I was trying something like
cobj = compile('eval(src_code)', ...)
And that complains about syntax error (because I am trying to define a
function within eval string?)
More information about the Python-list