小编典典

您如何以编程方式设置属性?

all

假设我有一个 python 对象x和一个字符串,s如何设置属性?所以:s``x

>>> x = SomeObject()
>>> attr = 'myAttr'
>>> # magic goes here
>>> x.myAttr
'magic'

有什么魔力?顺便说一句,这样做的目的是缓存对x.__getattr__().


阅读 71

收藏
2022-05-23

共1个答案

小编典典

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. 但很可能你有一个简单的对象子类,它可以正常工作。我强烈敦促 OP 永远不要制作这样的对象实例。

2022-05-23