python的__get__、__set__、__delete__(1)

内容:
    描述符引导
        摘要
        定义和介绍
        描述符协议
        调用描述符
        样例
        Properties
        函数和方法
        静态方法和类方法
        
    
摘要
    定义并展示如何调用描述符,展示自定义描述符和几个内置的python描述符,包括函数、属性、静态方法和类方法,通过给出一个Python的示例应用来展示描述符是如何工作的.
    熟练掌握描述符不仅让你拥有python使用的额外技巧,并且可以加深对Python内部如何工作的理解,提升对程序设计的能力,而且体会到python的设计优雅之处

定义和介绍
    一般来说,描述符是带有“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了.这些方法是__get__(),__set__(),和__delete__().
    如果一个对象定义了这些方法中的任何一个,它就是一个描述符.

    默认的属相访问是从对象的字典中 get, set, 或者 delete 属性,;例如a.x的查找顺序是:
    a.x -> a.__dict__['x'] -> type(a).__dict__['x'] -> type(a)的基类(不包括元类),如果查找的值是对象定义的描述方法之一,python可能会调用描述符方法来重载默认行为,
    发生在这个查找环节的哪里取决于定义了哪些描述符方法
    注意,只有在新式类中描述符才会起作用(新式类继承type或者object class)
    描述符是强有力的通用协议,属性、方法、静态方法、类方法和super()背后使用的就是这个机制,描述符简化了底层的c代码,并为Python编程提供了一组灵活的新工具


描述符协议

descr.__get__(self, obj, type=None) -> value descr.__set__(self, obj, value) -> None descr.__delete__(self, obj) -> None

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxxgz.html