是否可以从列表中动态生成变量?
在我的程序中,我使用以下指令:
for i in re.findall(r"...(?=-)", str(vr_ctrs.getNodeNames())):
tmp_obj = vr_ctrs.getChild(i+"-GEODE")
TMP.append([tmp_obj.getPosition(viz.ABS_GLOBAL)[0],
tmp_obj.getPosition(viz.ABS_GLOBAL)[1],
tmp_obj.getPosition(viz.ABS_GLOBAL)[2]])
在TMP上构建了一个列表。是否可以为我追加到TMP的每个元素生成一个新变量?
由于
答案 0 :(得分:4)
我建议你不要创建变量,而是在dict中捕获这些条目,使用你用作dict键的变量名的东西。然后,您可以通过访问dict.keys()轻松浏览解析的数据,并且您不必从其他本地或全局变量中挑选出变量。此外,如果您碰巧解析了与Python关键字意外碰撞的内容(例如'for'),那么将其用作dict键仍然有效,而将其用作变量或属性名称则不起作用
答案 1 :(得分:1)
全局变量位于字典中,您可以通过调用 globals()函数来获取。
globals()["foo"] = 17
foo # => 17
但您应该重构代码以使用对象,然后使用 setattr()。