如何解决循环浏览字典以将值插入对象
| 考虑我有以下字典:dic={}
dic[\"var1\"]=val1
dic[\"var2\"]=val2
现在,我有另一个包含两个属性的对象:var1
和var2
。
我想在对象的方法中运行一个循环,例如(伪代码):
for key,value in dic
self.key=value
这样self.var1=val2
和self.var2=val2
我如何在python中实现它?
梅尔
解决方法
>>> class Obj(object):
... pass
...
>>> obj = Obj()
>>> for key,value in {\'var1\':5,\'var2\':6}.iteritems():
... setattr(obj,key,value)
...
>>> obj.var1
5
>>> obj.var2
6
在这里,我不得不说类似“为什么不仅仅使用字典?”
, 您可以使用\“ setattr \”:
class Test:
var1 = \"Cheese\"
var2 = \"Toast\"
dic = {}
dic[\"var1\"] = \"NewCheese\"
dic[\"var2\"] = \"NewToast\"
oTest = Test()
for key in dic.keys():
setattr(oTest,dic[key])
print \"Var1 = \",oTest.var1
print \"Var2 = \",oTest.var2
#
# Result
#
# Var1 = NewCheese
# Var2 = NewToast
#
请参阅http://docs.python.org/library/functions.html#setattr。
, 您可以更新内部__dict__属性,该属性是包含对象的所有成员的字典。
class MyObj:
def __init__(self,member_dict):
self.__dict__.update(member_dict)
dic={}
dic[\"var1\"]=val1
dic[\"var2\"]=val2
obj = MyObj(dic)
print obj.var1
>>> val1
print obj.var2
>>> val2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。