首页 > 编程语言 > 详细

Python对象描述符

时间:2020-11-28 09:32:41      阅读:25      评论:0      收藏:0      [点我收藏+]

描述符是干啥的:

    描述符本质上就是一个新式类,至少实现了    __get__() , __set__(), __delete__(), 这3个方法当中的一个。

    描述符是用来代理另外一个类的属性的, 必须把描述符定义在另外一个类的属性当中,不能定义在构造函数里。

    __get__调用属性触发

   __set__设置属性触发

   __delete__删除属性触发

 

 

 

 

描述符分为2种:

    第一种,至少实现了 __get__() 和 __set__()

    第二种,没有实现 __set__()

 

 

基本描述

class Foo:

    def __set__(self, instance, value):
        print(__set__)


    def __get__(self, instance, owner):
        print(__get__)

    def __delete__(self, instance):
        print(__delete__)

class Demo:
    x=Foo()

    def __init__(self,x):
        self.x=x  # self.x被代理, 设置 self.x=x,触发 Foo的 __set__()方法


d=Demo(10)
d.x   # 触发 Foo的 __get__()方法
del d.x # 触发 Foo的 __delete__()方法

 

Python对象描述符

原文:https://www.cnblogs.com/liangqingyun/p/14050820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!