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'