为什么我不能在“ return”语句中使用exec()

时间:2020-06-12 17:24:35

标签: python python-3.x

我知道这是很糟糕的做法,但是我尝试运行此

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())

0 个答案:

没有答案
相关问题