【发布时间】:2014-03-19 22:31:39
【问题描述】:
我了解 eval 的基本用法,如 Python 标准库中的示例所示:
x = 1
print(eval('x+1'))
2
有人可以提供更简洁的解释,并提供使用全局和局部参数的示例。
【问题讨论】:
-
修正了问题,很好。
-
一般来说,不要使用
exec或eval,除非您完全知道自己在做什么并且确信使用它是解决问题的最佳方法。exec和eval通常应该不惜一切代价避免,因为它们会带来许多问题:当用于用户输入时,它们几乎是无法解决的安全隐患,可能会大大降低您的代码速度(因为exec可以操纵本地人,它会主动关闭对使用范围内的局部变量的优化),引入难以发现的错误,重构麻烦,降低可读性等等......
标签: python python-3.x eval standard-library