我正在使用的一个 python 描述符在其所有者类的所有实例中共享它的值。如何使每个实例的描述符包含其自己的内部值?
class Desc(object):
def __init__(self, initval=None,name='val'):
self.val = initval
self.name = name
def __get__(self,obj,objtype):
return self.val
def __set__(self,obj,val):
self.val = val
def __delete__(self,obj):
pass
class MyClass(object):
desc = Desc(10,'varx')
if __name__ == "__main__":
c = MyClass()
c.desc = 'max'
d = MyClass()
d.desc = 'sally'
print(c.desc)
print(d.desc)
输出是这样的,最后一次调用设置了两个对象的值:
localhost $ python descriptor_testing.py
sally
sally