.这些方法是__get__(),__set__(),和__delete__().
...__get__(obj)
然而,描述符更常用的方式是属性访问时被自动调用,例如:obj.d 在obj的字典中查找d,如果d定义了方法__get__(),然后d....,继承object的类自动实现或者他们有一个元类提供类似的功能,同样,重载 __getattribute__()可以停止描述符的调用
描述符例子
下面的代码创建了一个类,每次访问get或者set...同样,调用方法对象的效果依赖于im_self,如果set(绑定),原函数(存储在im_func中)被调用,它的第一个参数设置为实例.
... 简单地说,函数的__get__()方法会将函数被作为属性访问时转换为方法,非数据描述符将 obj.f(*args) 调用为f(obj, *args).调用 klass.f(*args)变为f