You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中执行变量中的代码?exec()返回None问题求解

解决exec()执行代码无法获取结果的问题

exec()本身的设计就是用来执行代码片段,它不会返回代码的执行结果,所以直接把exec的返回值赋值给变量,得到的必然是None。

想要获取执行后的结果,有两种常用方法:

方法一:使用eval()

如果你的变量里是单个表达式(比如示例里的1 + 1),用eval()更合适,它专门用来计算表达式并返回结果:

math = "1 + 1"
a = eval(math)
print(a)  # 输出:2

方法二:用exec()结合局部变量字典

如果需要执行的是多行代码或者更复杂的语句,一定要用exec()的话,可以通过传入局部变量字典来存储结果:

math = "result = 1 + 1"
local_vars = {}
# 执行代码,把局部变量存在local_vars里
exec(math, globals(), local_vars)
# 从字典里取出结果
a = local_vars['result']
print(a)  # 输出:2

⚠️ 注意:不管是eval()还是exec(),执行来自不可信来源的字符串都存在安全风险,可能会被注入恶意代码,使用时要谨慎。

内容的提问来源于stack exchange,提问作者Patientes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:30:42