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

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

假设我有一个python对象x和一根绳子s,如何设置属性s在……上面x?因此:

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

有什么魔力?顺便提一句,这样做的目的是将调用缓存到x.__getattr__().


暮色呼如
浏览 503回答 3
3回答

红糖糍粑

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.永远不要制造这样的对象。

弑天下

如果x是一个对象,那么您可以用两种方法来完成它x.attr_name = s  setattr(x, 'attr_name', s)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python