python基础教程:属性查询顺序,数据描述符

嗨喽,大家好呀~这里是爱看美女的茜茜呐

数据描述符,属性查找优先级

如果在一个类中定义了 __get__() , __set__(), __delete__() 这三种方法之一,那么这个类是一个描述符。

描述符分成两种:

如果这种类只定义了 __get__ 方法,那么就是一个非数据描述符,
定义了__get__()和__set__()的数据描述符。

描述符的用处就是,当一个对象的某个属性是一个描述符时,你访问这个描述符类型的属性,就会调用这个描述符的方法。

譬如你获取描述符的值时,会调用它的__get__().

我们先看一下这三个方法的docstring:

def __delete__(self, *args, **kwargs): # real signature unknown
    """ Delete an attribute of instance. """
    # 删除一个实例的属性

def __set__(self, *args, **kwargs): # real signature unknown
    """ Set an attribute of instance to value. """
    # 给实例的属性设置一个值

def __get__(self, *args, **kwargs): # real signature unknown
    """ Return an attribute of instance, which is of type owner. """
    # 返回实例的属性,该实例是 `owner` 类型的

👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


实例:

class A(object):
    def __init__(self):
        self.value = None

    def __set__(self, instance, value): # self:类A的实例,也是类B的属性a;instance:类 B 的实例 b;value:通过b.a的赋值
        print<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值