私が使用している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