Python 3.x 在python3中动态创建/调用变量

Python 3.x 在python3中动态创建/调用变量,python-3.x,Python 3.x,大家好,动态创建/调用变量有更好的方法吗?我正在尝试创建一个结构解析器,它将读取块中的对象数据,并在发现这些对象时动态创建这些对象作为变量 这是我目前方法的一个例子,但感觉我做得不对 >>> VAR="VAR2" >>> class item(): ... pass ... >>> newitem=item() >>> exec('newitem.'+VAR+'=\''+'hello'+'\'') >>

大家好,动态创建/调用变量有更好的方法吗?我正在尝试创建一个结构解析器,它将读取块中的对象数据,并在发现这些对象时动态创建这些对象作为变量

这是我目前方法的一个例子,但感觉我做得不对

>>> VAR="VAR2"
>>> class item():
...     pass
... 
>>> newitem=item()
>>> exec('newitem.'+VAR+'=\''+'hello'+'\'')
>>> newitem.VAR2
'hello'
>>> 
使用

因此,例如,
setattr(a,“煎饼”、“糖浆”)
a.pancakes=“糖浆”


因此,您可以使用
setattr(newitem,VAR,“hello”)
newitem.VAR2
变成“hello”。

我认为您在动态创建变量方面走的是正确的道路,尽管我想问您为什么不使用hashmap。为什么不呢

newitem = {}
newitem[VAR] = 'hello'

尽量远离eval语句,因为您必须为“python注入”进行调整。i、 e.VAR可能包含一个“'”,这可能会导致无效代码。如果可能的话,只使用常规的Python构造要容易得多

是的,这可能是更明智的做法,谢谢。
newitem = {}
newitem[VAR] = 'hello'