假设我有一个python对象x
和一个字符串s
,如何在x上设置属性
?所以:s
>>> x = SomeObject()
>>> attr = 'myAttr'
>>> # magic goes here
>>> x.myAttr
'magic'
什么是魔法?顺便说一句,这样做的目的是缓存对 x.__getattr__()
的调用。
最佳答案
setattr(x, attr, 'magic')
寻求帮助:
>>> help(setattr)
Help on built-in function setattr in module __builtin__:
setattr(...)
setattr(object, name, value)
Set a named attribute on an object; setattr(x, 'y', v) is equivalent to
``x.y = v''.
但是,您应该注意,您不能对 object
的“纯”实例执行此操作。但很可能你有一个简单的对象子类,它可以正常工作。我强烈敦促 O.P. 永远不要制作这样的对象实例。
https://stackoverflow.com/questions/285061/