我想在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上面示例中的值设置属性?
我想在函数外部使用函数中定义的一堆局部变量.所以我传递x=locals()了返回值.
如何将该字典中定义的所有变量加载到函数外部的命名空间中,这样x['variable']我就可以简单地使用,而不是使用值来访问该值variable.