如果一个class中定义了__get__函数 或 __set__函数 或 __delete__函数,那么这个class就会是一个descriptor描述器
一个对象在访问描述器时,如果该属性是一个描述器,则默认属性回调规则会被__set__, __get__, __delete__方法所覆盖
Python内部自带的staticmethod, classmethod, property,super等都是描述器,在很多 Python库中也都有描述器的身影(例如SQLAlchemy),使用描述器能让你有更高的概率写出优美的代码、更简洁的API,并会加深对Python理解