当直接在类上调用描述符时,为什么描述符变得无效?

时间:2015-05-13 16:37:14

标签: python

在学习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'中删除?

1 个答案:

答案 0 :(得分:3)

在您的示例中,当您进行此做法时C.d = 'danger',您将使用值' danger'覆盖描述符。 C.d不再是描述符,它现在是字符串' dangerous'。