我知道这是很糟糕的做法,但是我尝试运行此
def b():
return 'return "Foo"'
def a():
exec(b())
print(a())
,并出现以下错误:
SyntaxError: 'return' outside function
如果我将“ return“ Foo””替换为任何其他有效的python表达式,它将成功运行
从我的角度来看,'return“ Foo”'是从a()内部运行的,而python应该显示“ Foo”,这是怎么回事?
-----编辑-----
为避免混淆,这也会出现相同的错误
def a():
exec('return "Foo"')
print(a())