New submission from Kevin Fitch <[EMAIL PROTECTED]>: 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) ---------- messages: 76202 nosy: kfitch severity: normal status: open title: Cannot declare multiple classes via exec when inside a function. versions: Python 2.5 _______________________________________ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue4381> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com