在Python中使用setattr()向dict添加键

时间:2013-09-23 10:39:21

标签: python

如何使用setattr()将对象的字典添加到对象的字典中?假设我在班上定义了fields字典。从另一个类我想在这本词典中添加一个键。我该怎么办? setattr(cls, 'fields', 'value')完全更改了该属性。

3 个答案:

答案 0 :(得分:5)

如果您需要沿着名称查找路线前进,则不要使用:

getattr(cls, 'fields')['key'] = 'value'

答案 1 :(得分:2)

您应该使用getattr代替setattr来执行此操作。就像是。

>>> class TestClass:
        def __init__(self):
            self.testDict = {}


>>> m = TestClass()
>>> m.testDict
{}
>>> getattr(m, "testDict")["key"] = "value"
>>> m.testDict
{'key': 'value'}

答案 2 :(得分:2)

cls.fields['key'] = 'value'

怎么样?