3
我正在使用的python描述符在其所有者類的所有實例中共享其值。我怎樣才能讓每個實例的描述符包含自己的內部值?跨類共享值的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
我認爲部分問題是python.org上有一個例子,基於同樣的原因基本上是錯誤的。它是http://docs.python.org/howto/descriptor.html中的描述符示例,是搜索'描述符python'時的第一個結果。 – damix911 2012-08-05 16:47:20