如何将含变量赋值的字符串转为Python实际变量赋值?
如何将字符串形式的变量赋值转为实际变量赋值
Python 场景
eval() 只能处理表达式,无法执行赋值语句,所以用它实现变量赋值不会生效,正确方式是使用 exec() 函数:
- 直接执行赋值语句:
exec("X = 5") print(X) # 输出 5 - 若想避免污染全局命名空间,可指定局部作用域:
local_scope = {} exec("X = 5", globals(), local_scope) print(local_scope["X"]) # 输出 5
JavaScript 场景
JS 里的 eval() 可以直接执行赋值语句,注意作用域即可:
- 全局作用域赋值:
eval("X = 5"); console.log(X); // 输出 5 - 浏览器环境下也可通过
window挂载全局变量:eval("window.X = 5"); console.log(X);
⚠️ 注意:exec() 和 eval() 都存在安全风险,请勿执行来源不可信的字符串代码,避免恶意代码注入。
内容的提问来源于stack exchange,提问作者NotchArrow
相关产品推荐
相关产品推荐

