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

Reply via email to