我的python有点奇怪。我正在尝试使用exec / eval / compile从字符串形式执行一些代码。特别是exec,但是由于语法错误而静默失败,因此我改用eval。
#start of document
print( compile( 'Test_val = 1;','None','eval' ) )
Traceback (most recent call last):
File "/Users/lucasyoung/Desktop/Application/__init__.py",line 6,in <module>
print( compile( 'Test_val = 1;','eval' ) )
File "None",line 1
Test_val = 1;
^
我做了一些测试,例如,可以通过编译调用一条打印语句。我可以称变量为存在,但似乎无法命名它们。奇怪的是,这在编译后的代码自身上下文的范围内。
我知道堆栈对超细节问题有很大的要求,但是老实说我不知道该说些什么。 Exec应该从字符串中激发一些代码。我正在调用的代码是完全有效的。我很困惑。