迭代在Python中向对象添加属性的列表

时间:2014-05-16 17:08:04

标签: python

这就是我想要的。

def add_things_to_x(x,list_of_things):
    for item in list_of_things:
        x.item = item
    return x

我该怎么做?

由于看起来很难做到,我猜可能有更好的方法和理由不这样做?

我如何使用这种功能的一个例子。

average_height = 10
std_height = 3

x = load_data()

x = add_things_to_x(x,[average_height,std_height])

x.save_data()

以便稍后如果我pickle.load(x)我可以调用x.std_height和x.average_height

1 个答案:

答案 0 :(得分:2)

setattr用于此类事情:

for k, v in {'average_height': 10, 'std_height': 3}:
    setattr(x, k, v)

在结束时,您已将x.item设置为不同的值,最后只有最后一个值。这避免了这个问题,因为属性的名称是作为字符串参数发送的。