Je veux créer un objet dynamique (à l'intérieur d'un autre objet) en Python, puis y ajouter des attributs.
J'ai essayé:
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
mais cela n'a pas fonctionné.
Des idées?
Éditer:
Je mets les attributs d'une for
boucle qui boucle à travers une liste de valeurs, par exemple
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
Dans l'exemple ci - dessus , je recevrais obj.a.attr1
, obj.a.attr2
, obj.a.attr3
.
J'ai utilisé la setattr
fonction parce que je ne savais pas comment faire à obj.a.NAME
partir d'une for
boucle.
Comment définirais-je l'attribut en fonction de la valeur de p
dans l'exemple ci-dessus?
a = object()
et vous en avez besoin obj.a = object()
. Encore une fois, je parle de l'exemple, dans votre code réel, un objet à l'intérieur d'un objet peut être utile.