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