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

7 投票
1 回答
2180 浏览
提问于 2025-04-16 01:15

有没有类似于 setattr() 的方法,可以让我们往一个已经创建的类对象的某个列表属性里添加内容?如果没有,有没有推荐的做法?

这是我现在正在做的一个简化版:

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

这样做看起来有点笨重,而且效率不高。

补充说明:这里假设 foo.names(或者说 attr 变量可能被赋的任何值)实际上是一个列表。

1 个回答

15

这里提到的 setattr 调用是多余的,前提是 foo.names 确实是一个列表(如果不是的话,可以请你解释一下吗?)。其实只需要用 getattr(foo, attr).append(value) 就可以了。

撰写回答