【发布时间】:2010-10-06 19:36:53
【问题描述】:
我需要根据输入字符串“s”调用 exec() 或 eval()
如果“s”是一个表达式,在调用 eval() 后,如果结果不是 None,我想打印结果
如果“s”是一个语句,那么只需 exec()。如果语句恰好打印了一些东西,那就这样吧。
s = "1 == 2" # 用户输入 # --- 尝试: v = 评估 打印“v->”,v 除了: 打印“评估失败!” # --- 尝试: 执行官 除了: 打印“执行失败!”例如,“s”可以是:
s = "打印 123"在这种情况下,应该使用 exec()。
当然,我不想先尝试 eval(),如果失败则调用 exec()
【问题讨论】:
-
如果用户输入恶意代码怎么办?用户可以提供什么作为输入(任何 Python 代码,或“更小”的语言)?
-
你好 Bart,由用户输入他想要的内容。我只是使用我自己的 UI 提供了一个 Python shell
标签: python expression detect