Я хотел бы динамически обновлять атрибуты класса, но кажется, что комбинация setattr и getattr не работает, поскольку я хотел бы использовать ее.Python combating setattr и getattr
Вот мой основной класс:
class Container(object):
def __init__(self):
pass
container = Container()
attributes = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4, 5], [True, False], ['red', 'blue', 'green'], [0, 1, -1, -5, 99]]
Пожалуйста, обратите внимание, что для целей этого примера я явно сконструированного список атрибутов и их соответствующих значений. Однако в реальном применении этого кода я не знаю ничего заранее. Ни их номеров, ни имени, ни значений. Это требует необходимости сделать это динамически.
Вот остальная часть кода:
for key, value in zip(attributes, values):
setattr(container, key, [])
for val in value:
setattr(container, key, getattr(container, key).append(val))
эта часть не работает, когда я запускаю код. Я мог бы сохранить часть getattr в переменной tmp, а затем вызвать метод append для списка перед вызовом setattr, но я хотел бы сконденсировать его, если это возможно.
Любой может объяснить мне, почему это не работает? Какие у меня есть альтернативы?
Спасибо за вашу помощь
"* эта часть не работает, когда я запускаю код *" как? Кроме того, что вы ожидаете? – Blender