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.
精彩评论