开发者

Pythonic syntax for appending an arbitrary class object list property

开发者 https://www.devze.com 2023-01-07 05:54 出处:网络
Is there an analog of setattr() that allows for appending an arbitrary list property of an instantiated class object? If not, is there a recommended way of doing so?

Is there an analog of setattr() that allows for appending an arbitrary list property of an instantiated class object? If not, is there a recommended way of doing so?

This is a trivialized version of what I'm doing currently:

foo = SomeClass()
...
attr = "names"
value = "Eric"
values = g开发者_如何学编程etattr(foo, attr)
values.append(value)
setattr(foo, attr, values)

This seems clunky and inefficient.

Edit: this assumes that foo.names (or whatever arbitrary value might be assigned to the attr variable) is in fact a list.


The setattr call is redundant, if foo.names is indeed a list (if it's something else, could you please clarify?). getattr(foo, attr).append(value) is all you need.

0

精彩评论

暂无评论...
验证码 换一张
取 消