如何在类对象中添加新值

时间:2016-05-10 09:32:12

标签: python openstack-horizon

我有一个包含类对象的列表。对于这个类对象,我需要添加一个新值。如何在不创建新课程的情况下实现这一目标。

样本列表如下

 [<hashmap.Mapping {u'field_id': u'409231ab-0809-4e50-9ad1-7c75f79720b4', u'value': u'12fabdf1e7744e91b0a1c3ee511f876d', u'mapping_id': u'e2e65bcc-12ce-4384-89e5-318ba1c057f7', u'cost': u'1.02003000', u'service_id': None, u'group_id': u'71d36a0f-6d22-4780-839f-b69829db9929', u'type': u'flat'}>]

我需要以下列表

[<hashmap.Mapping {u'name': u'tenant addon', u'field_id': u'409231ab-0809-4e50-9ad1-7c75f79720b4', u'value': u'12fabdf1e7744e91b0a1c3ee511f876d', u'mapping_id': u'e2e65bcc-12ce-4384-89e5-318ba1c057f7', u'cost': u'1.02003000', u'service_id': None, u'group_id': u'71d36a0f-6d22-4780-839f-b69829db9929', u'type': u'flat'}>]

先谢谢 Binoy

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。使用setattr()方法向类对象添加新值。给出的样本输出是

[<hashmap.Mapping {u'field_id': u'409231ab-0809-4e50-9ad1-7c75f79720b4', u'value': u'12fabdf1e7744e91b0a1c3ee511f876d', u'mapping_id': u'e2e65bcc-12ce-4384-89e5-318ba1c057f7', u'cost': u'1.02003000', u'service_id': None, u'group_id': u'71d36a0f-6d22-4780-839f-b69829db9929', u'type': u'flat'}>]

实际上这是一个类对象列表。对于此对象,我们可以使用以下方法添加新值。 a)定义新列表 b)迭代目前的清单 c)使用setattr()添加新值 d)将列表附加到新列表

代码如下

#Iterating the mapp data
    for mapp in mappings:

        #Getting the groups
        setattr(mapp, 'service_name', 'test')
        map_list.append(maps)

这将提供以下输出

[<hashmap.Mapping {u'field_id': u'409231ab-0809-4e50-9ad1-7c75f79720b4', u'value': u'12fabdf1e7744e91b0a1c3ee511f876d', u'mapping_id': u'e2e65bcc-12ce-4384-89e5-318ba1c057f7', u'cost': u'1.02003000', u'service_id': None, u'group_id': u'71d36a0f-6d22-4780-839f-b69829db9929', u'type': u'flat', u'service_name': u'test'}>