43. 描述符
43. 描述符 描述符是一个控制另一个对象的属性访问的对象。描述符是 Python 对象模型背后的主要机制之一。他们解释了方法如何绑定到实例,如何 property 工作原理,如何 staticmethod 和 classmethod 工作原理、槽的工作原理以及有多少 CPython 级别的类型操作连接到 Python 级别的语法。 在语言级别,描述符是定义以下一个或多个方法的任何对象: python id="x7hcrg" __get__(self, obj, objtype=None) __set__(self, obj, value) __delete__(self, obj) 一个对象与 __get__ 是一个描述符。 一个对象与 __set__ 或者 __delete__ 是一个数据描述符。 非数据描述符和数据描述符之间的区别控制着查找优先级。 43.1 为什么描述符存在 Python 属性访问看起来很简单: python id="96l8i5" obj.name 但这个表达式并不意味着“读取一个名为 name 从记忆中。” 这意味着:```text id="drqc0j" ask the object's type how attribute lookup works search descriptors and dictionaries in a defined order possibly call descriptor methods return the resulting…