是否有setattr()
的模拟允许附加实例化类对象的任意列表属性?如果没有,是否有建议的方法?
这是我目前所做的一个简单版本:
foo = SomeClass()
...
attr = "names"
value = "Eric"
values = getattr(foo, attr)
values.append(value)
setattr(foo, attr, values)
这看起来很笨拙而效率低下。
编辑:这假设foo.names(或任何可能赋值给attr变量的任意值)实际上是一个列表。
答案 0 :(得分:13)
setattr
调用是多余的,如果 foo.names
确实是一个列表(如果它是其他内容,请你澄清一下吗?)。你只需要getattr(foo, attr).append(value)
。