Я хочу создать динамический объект (внутри другого объекта) в 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
в примере выше?
a = object()
и вам это нужно obj.a = object()
. Опять же, я говорю о примере: в вашем реальном коде объект внутри объекта может быть полезен.