我想做到的是要设定testobj.alpha
到.5
在下面的例子:
class test():
def __init__(self):
self.alpha = 0
d = {'alpha' : .5}
testobj = test()
for i in d:
testobj.i = d[i] #creates a new class member called 'i' instead of setting alpha to .5
就像评论中所说的那样,在for
循环中,将i
创建一个名为的新类成员,而不是将现有alpha
成员设置为.5。
用于setattr
动态设置属性:
for i in d:
setattr(testobj, i, d[i])
或直接更新内部属性字典(vars
将用作__dict__
属性的代理):
vars(testobj).update(d) # No (explicit) loop
如果对象没有__dict__
属性(例如,已使用__slots__
属性定义),则后一种方法将失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句