在学习Python中的描述符时,我尝试了以下代码:
package {
public class myApplication {
public function myApplication(stageRoot:Stage) {
stop(); // this doesn't work
this.stop(); // this doesn't work either
}
}
}
为什么在执行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'
中删除?
答案 0 :(得分:3)
在您的示例中,当您进行此做法时C.d = 'danger'
,您将使用值' danger'覆盖描述符。 C.d
不再是描述符,它现在是字符串' dangerous'。