我希望能够将属性http://docs.python.org/library/functions.html#property添加到对象(类的特定实例)。这可能吗?
关于在 python 中打鸭子/猴子补丁的一些其他问题:
更新:delnan 在评论中回答
我希望能够将属性http://docs.python.org/library/functions.html#property添加到对象(类的特定实例)。这可能吗?
关于在 python 中打鸭子/猴子补丁的一些其他问题:
更新:delnan 在评论中回答
以下代码有效:
#!/usr/bin/python
class C(object):
def __init__(self):
self._x = None
def getx(self):
print "getting"
return self._x
def setx(self, value):
print "setting"
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
s = C()
s.x = "test"
C.y = property(C.getx, C.setx, C.delx, "Y property")
print s.y
但我不确定你应该这样做。
class A:
def __init__(self):
self.a=10
a=A()
print a.__dict__
b=A()
setattr(b,"new_a",100)
print b.__dict__
希望这能解决您的问题。
a.__dict__ #{'a': 10}
b.__dict__ #{'a': 10, 'new_a': 100}