我想在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
函数,因为我不知道如何从for
循环执行obj.a.NAME
。
如何根据上面例子中的p
的值设置属性?
关于为什么它不工作的详细信息,请参见不能在"object"实例上设置属性;类< / >。