如何将字符串转换为键变量名?实现model.sun取值为1的需求
嘿,我懂你想要实现的效果——通过字符串来指定对象的键名,最终让model.sun的取值为1对吧?下面我给你分享几种常见编程语言的具体实现方案,你可以根据自己的技术栈来选:
JavaScript 实现方式
在JS里,用方括号语法就能轻松实现动态设置对象属性:
// 先初始化你的model对象 const model = {}; // 假设你有个存储键名的字符串变量 const targetKey = "sun"; // 用方括号把字符串作为键来赋值 model[targetKey] = 1; // 现在验证一下 console.log(model.sun); // 输出:1
如果是嵌套属性(比如model.weather.sun),还可以拆分字符串逐层处理,但你当前的需求用上面的基础写法就完全够用啦。
Python 实现方式
Python里有两种常用方案,分别适合字典和类实例的场景:
方案1:字典直接用方括号赋值
model = {} targetKey = "sun" model[targetKey] = 1 print(model["sun"]) # 输出:1
如果是自定义类的实例,也可以通过操作__dict__来实现:
class Model: pass model = Model() targetKey = "sun" model.__dict__[targetKey] = 1 print(model.sun) # 输出:1
方案2:用setattr()函数(更适合类实例)
这个方法更规范,不用直接操作类的内部字典:
class Model: pass model = Model() targetKey = "sun" setattr(model, targetKey, 1) print(model.sun) # 输出:1
总的来说,核心思路就是利用编程语言提供的动态属性访问/赋值机制,把字符串作为键名传递给对应的语法或函数,就能实现你想要的效果啦!
内容的提问来源于stack exchange,提问作者Guilherme Escarabel
相关产品推荐
相关产品推荐

