在学习Python中的描述符时,我尝试了以下代码:
class D(object) :
def __init__(s) :
s.a = ''
def __get__(s, ins, own) :
print 'desc get'
return s.a
def __set__(s, ins, val) :
print 'desc set'
s.a = val
class C(object) :
d = D()
C.d = 'danger'
c = C()
c.d = 'some str'
为什么在执行C.d = 'danger'
时,描述符会从C.__dict__
中删除?你知道吗
在您的示例中,当您做作
C.d = 'danger'
时,您将用值“danger”覆盖描述符。C.d
不再是描述符,现在是字符串“danger”。你知道吗相关问题 更多 >
编程相关推荐