Я хочу создать динамический объект (внутри другого объекта) в Python, а затем добавить к нему атрибуты.Python: создать объект и добавить к нему атрибуты
Я пробовал:
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
, но это не сработало.
Любые идеи?
редактировать:
Я устанавливаю атрибуты из for
в цикл, который перебирает список значений, например,
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
В приведенном выше примере я хотел бы получить obj.a.attr1
, obj.a.attr2
, obj.a.attr3
.
Я использовал функцию setattr
, потому что я не знал, как это сделать obj.a.NAME
из цикла for
.
Как бы установить атрибут на основе значения p
в примере выше?
Что вы подразумеваете под "did not work"? Я предполагаю, что он создал исключение AttributeError, не так ли? –
да. Объект 'object' не имеет атрибута 'somefield' – John
Почему вы это делаете? Общий «объект» не имеет никакого действительного * значения *. Что означает * значение * того, что вы создаете? Почему это не правильный класс или namedtuple? –