描述符descriptor

 

Python函数其实就是描述符。

 

实现了__get__方法、__set__方法或__delete__方法的类是描述符。

描述符的用法是,创建一个实例,作为另一个类的类属性。

 描述符的典型用途是管理数据属性。

 

访问都是访问公有属性,设值是在私有属性上;

在属性查找期间,描述器是由点运算符触发调用。描述器descriptor仅在用作类变量(类属性)时起作用,放入实例时,它们将失效。

 

 在描述符类种,定义__set__方法时,必须把属性的值直接存入__dict__,调用setattr(instance, self.storage_name)将再次触发__set__方法,导致无限递归。

 

 方法和函数只实现了__get__方法,属于非覆盖型描述符 。

 

 

 

 

特性也是覆盖型描述符,

 

 

 

 

 

 

 

 

 

************************

描述符是个类。

方法和函数是只实现了__get__方法的非覆盖型描述符。

将描述符类存放在单独的模块中,可以方便在不同的类中重用属性验证逻辑。

描述符示例:属性验证。解决这种问题的面向对象方式是描述符类。

注意本章的标题是 “ 属性描述符 ”

描述符类的实例是托管类的类属性。

 

 

无需子类化是什么意思

 

posted @ 2023-11-18 16:00  limalove  阅读(42)  评论(0)    收藏  举报