描述器

描述器#

描述器

任何定义了 __get__(), __set__() __delete__() 方法的对象。当一个类属性为描述器时,它的特殊绑定行为就会在属性查找时被触发。通常情况下,使用 a.b 来获取、设置或删除一个属性时会在 a 的类字典中查找名称为 b 的对象,但如果 b 是一个描述器,则会调用对应的描述器方法。

如果一个对象定义了 __set__() __delete__(),则它会被视为 数据描述器

仅定义了 __get__() 的描述器称为 非数据描述器 (它们经常被用于方法,但也可以有其他用途)。

据和非数据描述器的不同之处在于,如何计算实例字典中项的替代值。如果实例的字典具有与数据描述器同名的项,则数据描述器优先。如果实例的字典具有与非数据描述器同名的项,则该字典项优先。

为了使数据描述器成为只读的,应该同时定义 __get__()__set__(),并在 __set__() 中引发 AttributeError

描述器调用概述

2000 * 30
60000