我想在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()
。我再次谈论这个示例,在您的实际代码中,对象内部的对象可能很有用。