我想在Python中创建一个动态对象(在另一个对象内),然后为其添加属性.
我试过了:
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
Run Code Online (Sandbox Code Playgroud)
但这没用.
有任何想法吗?
编辑:
我从for循环中设置属性,循环遍历值列表,例如
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我会得到obj.a.attr1,obj.a.attr2,obj.a.attr3.
我使用了这个setattr函数因为我不知道怎么做obj.a.NAME一个for循环.
如何根据p上面示例中的值设置属性?
我想知道是否可以动态地向对象添加字段.例如,我希望能够添加如下内容:
user = object()
user.first_name = 'John'
user.last_name = 'Smith'
Run Code Online (Sandbox Code Playgroud)
当我在Python命令行解释器中执行它时,我得到:
AttributeError: 'object' object has no attribute 'first_name'
Run Code Online (Sandbox Code Playgroud)
任何的想法?