Django中如何将拼接得到的字符串转为对应已声明变量的取值
问题解决方法
你可以通过以下几种方式实现需求:
- 方法1:使用
globals()获取全局变量(适用于变量为全局作用域的场景)globals()会返回当前所有全局变量组成的字典,变量名是字典的键,变量值是对应的值,示例代码如下:
a1 = 10 b = "a" + "1" print(globals()[b]) # 输出结果为 10
- 方法2:使用
locals()获取局部变量(适用于变量在函数内部等局部作用域的场景)
如果要获取的变量是局部作用域内的,替换为locals()即可:
def test(): a1 = 10 b = "a" + "1" print(locals()[b]) test() # 输出结果为 10
- 方法3:使用
eval()(不推荐,存在安全风险)eval()可以执行字符串形式的Python表达式,虽然可以实现需求,但如果字符串内容不可控会有注入风险,示例如下:
a1 = 10 b = "a" + "1" print(eval(b)) # 输出结果为 10
最佳实践建议:如果有大量需要通过动态名称访问的变量,更推荐直接使用字典存储键值对,而非声明多个独立变量,这种方式可读性、安全性和可维护性都更高,示例如下:
data = {"a1": 10} b = "a" + "1" print(data[b]) # 输出结果为10
内容的提问来源于stack exchange,提问作者Pulkit Sharma
相关产品推荐
相关产品推荐

