“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了.这些方法是__get__(),__set__(),和__delete__().
...默认的属相访问是从对象的字典中 get, set, 或者 delete 属性,;例如a.x的查找顺序是:
a.x -> a.__dict__['x'] -> type(a)....,如果一个实例的字典实现了无数据描述符的定义,那么这个字典中的属性会被优先使用,实现只读数据描述符,同时定义__get__()和__set__(),在__set__()中抛出AttributeError...__get__(obj)
然而,描述符更常用的方式是属性访问时被自动调用,例如:obj.d 在obj的字典中查找d,如果d定义了方法__get__(),然后d....,每次访问get或者set都会打印一条信息.重载__getattribute__()也可以使每个属性实现这一方法,然而,描述符在查看特定的属性时比较有用
class RevealAccess