用于附加任意类对象列表属性的Pythonic语法

时间:2010-07-13 23:39:57

标签: python

是否有setattr()的模拟允许附加实例化类对象的任意列表属性?如果没有,是否有建议的方法?

这是我目前所做的一个简单版本:

foo = SomeClass()
...
attr = "names"
value = "Eric"
values = getattr(foo, attr)
values.append(value)
setattr(foo, attr, values)

这看起来很笨拙而效率低下。

编辑:这假设foo.names(或任何可能赋值给attr变量的任意值)实际上是一个列表。

1 个答案:

答案 0 :(得分:13)

setattr调用是多余的,如果 foo.names确实是一个列表(如果它是其他内容,请你澄清一下吗?)。你只需要getattr(foo, attr).append(value)