我在多个地方多次看过这个,但从来没有找到令人满意的解释,为什么会出现这种情况.
所以,希望有人会在这里提出.为什么我们(至少一般)不使用exec()和eval()?
编辑:我看到人们假设这个问题与网络服务器有关 - 它没有.我可以看到为什么传递给unsanitized的字符串exec可能不好.在非网络应用程序中它是坏的吗?
这是我的代码:
a = \
'''def fun():\n
print 'bbb'
'''
eval(a)
fun()
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
Traceback (most recent call last):
File "c.py", line 8, in <module>
eval(a)
File "<string>", line 1
def fun():
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
那我该怎么办
谢谢