我正在尝试使用exec运行一段python代码。my_code = """
class A(object):
pass
print 'locals: %s' % locals()
print 'A: %s' % A
class B(object):
a_ref = A
"""
global_env = {}
local_env = {}
my_code_AST = compile(my_code, "My Code", "exec")
exec(my_code_AST, global_env, local_env)
print local_env
从而产生以下输出locals: {'A': }
A:
Traceback (most recent call last):
File "python_test.py", line 16, in
exec(my_code_AST, global_env, local_env)
File "My Code", line 8, in
File "My Code", line 9, in B
NameError: name 'A' is not defined
不过,如果我把密码改成这个-my_code = """
class A(object):
pass
print 'locals: %s' % locals()
prin