Message76202
codeText = """
class foo(object): pass
class bar(object):
baz = foo()
"""
def doExec(text):
exec text
### This works:
# Although if I do this before the doExec below, then the
# doExec doesn't fail.
# exec codeText
### But this does not:
doExec(codeText)
The output I get is:
---------------------------------------------------------------------------
<type 'exceptions.NameError'> Traceback (most recent call last)
/home/kfitch/<ipython console> in <module>()
/home/kfitch/<ipython console> in doExec(text)
/home/kfitch/<string> in <module>()
/home/kfitch/<string> in bar()
<type 'exceptions.NameError'>: name 'foo' is not defined
I don't fully understand why the version in the function doesn't work,
but I suspect it is a bug related to scoping, since foo is really
doExec.foo (I think).
This is with python 2.5.2 under Linux (Ubuntu 8.04) |
|
Date |
User |
Action |
Args |
2008-11-21 20:33:45 | kfitch | set | recipients:
+ kfitch |
2008-11-21 20:33:45 | kfitch | set | messageid: <1227299625.55.0.683059455596.issue4381@psf.upfronthosting.co.za> |
2008-11-21 20:33:45 | kfitch | link | issue4381 messages |
2008-11-21 20:33:44 | kfitch | create | |
|