我怎样才能通过__dict__在Python中分配一个新的类属性?
我想通过一个string对象分配一个类属性 – 但是怎么样?
例:
class test(object): pass a = test() test.value = 5 a.value # -> 5 test.__dict__['value'] # -> 5 # BUT: attr_name = 'next_value' test.__dict__[attr_name] = 10 # -> 'dictproxy' object does not support item assignment
这里有一个内build函数:
setattr(test, attr_name, 10)
参考: http : //docs.python.org/library/functions.html#setattr
例:
>>> class a(object): pass >>> a.__dict__['wut'] = 4 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'dictproxy' object does not support item assignment >>> setattr(a, 'wut', 7) >>> a.wut 7