S
Stef Mientki
hello,
I've syntax error which I totally don't understand:
########## mainfile :
import test_upframe2
if __name__ == '__main__':
var1 = 33
code = 'print var1 + 3 \n'
test_upframe2.Do_Something_In_Parent_NameSpace ( code )
########### file = test_upframe2 :
class Do_Something_In_Parent_NameSpace ( object ) :
def __init__ ( self, code ) :
def do_more ( ) :
nonvar = [3,4]
while len ( nonvar ) > 0 : # <<<===
nonvar.pop() # <<<===
import sys
p_locals = sys._getframe(1).f_locals
p_globals = sys._getframe(1).f_globals
try :
exec ( code, p_globals, p_locals )
except :
print 'ERROR'
gives me:
SyntaxError: unqualified exec is not allowed in function '__init__' it
contains a nested function with free variables (gui_support.py, line
408)
"unqualified exec" : I thought that meant there is some ambiguity in the
namespace, but I explictly definied the namespace
The function "do_more" is never called, so what does it matter what's
in there ?
If I remove the while-loop (which of course I can't) the syntax error
disappears.
I can place the function either as a class method or as a normal
function outside the class,
which both works well.
But I want the method / function not to be hidden.
Why does the above syntax error appear ?
Are there other ways to hide the function ?
thanks,
Stef Mientki
I've syntax error which I totally don't understand:
########## mainfile :
import test_upframe2
if __name__ == '__main__':
var1 = 33
code = 'print var1 + 3 \n'
test_upframe2.Do_Something_In_Parent_NameSpace ( code )
########### file = test_upframe2 :
class Do_Something_In_Parent_NameSpace ( object ) :
def __init__ ( self, code ) :
def do_more ( ) :
nonvar = [3,4]
while len ( nonvar ) > 0 : # <<<===
nonvar.pop() # <<<===
import sys
p_locals = sys._getframe(1).f_locals
p_globals = sys._getframe(1).f_globals
try :
exec ( code, p_globals, p_locals )
except :
print 'ERROR'
gives me:
SyntaxError: unqualified exec is not allowed in function '__init__' it
contains a nested function with free variables (gui_support.py, line
408)
"unqualified exec" : I thought that meant there is some ambiguity in the
namespace, but I explictly definied the namespace
The function "do_more" is never called, so what does it matter what's
in there ?
If I remove the while-loop (which of course I can't) the syntax error
disappears.
I can place the function either as a class method or as a normal
function outside the class,
which both works well.
But I want the method / function not to be hidden.
Why does the above syntax error appear ?
Are there other ways to hide the function ?
thanks,
Stef Mientki