On Wed, 28 Jan 2009 07:47:00 -0000, Hendrik van Rooyen
<m...@microcorp.co.za> wrote:
Stephen Hansen wrote:
Exec is a statement, not a function nor an object: even though you can
enclose parens around its arguments like you do later on, they
don't have any syntax meaning
This is actually not correct - it is the root cause of my trouble.
if you write, in a nested scope:
exec ( "somestring to execute" in globals(),locals())
You get the syntax error, as the interpreter somehow sees it as one,
unqualified thing.
Well, no. Look at the error Python gives you, nested scope or not:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: exec: arg 1 must be a string, file, or code object
If exec is a function, arg 1 is the boolean expression
"somestring to execute" in globals()
which is unlikely to be what you want. If exec is a statement,
arg 1 is a tuple of two elements,
"somestring to execute" in globals()
and
locals()
which is also unlikely to be what you want. Neither of these are
giving you a string, file or code object, exactly as the interpreter
is telling you.
--
Rhodri James *-* Wildebeeste Herder to the Masses
--
http://mail.python.org/mailman/listinfo/python-list