tags:

views:

38

answers:

1

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 = getattr(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.

+7  A: 

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.

Alex Martelli
Of course! Thank you.
heydenberk
@heydenberk, you're welcome!
Alex Martelli