描述符类的文档字符串用于注解托管类中的各个描述符实例。图 20-6 中的截图是 LineItem 类(见示例 20-7)及 Quantity 和 NonBlank 描述符(见示例 20-6)的帮助界面。
提供的信息有点不足。对 LineItem 类来说,如果能说明 weight 必须以千克为单位就好了。这对特性来说是小菜一碟,因为各个特性只处理特定的托管属性。可是对描述符来说, weight 和 price 使用的都是 Quantity 描述符类。7
7定制各个描述符实例的帮助文本特别难。有一种方法是为各个描述符实例动态构建包装类。
讨论特性时还讲了一个细节,而这里讨论的描述符没有涉及,那就是对删除托管属性的处理。在描述符类中,实现常规的 __get__ 和(或)__set__ 方法之外,可以实现 __delete__ 方法,或者只实现 __delete__ 方法做到这一点。时间充足的读者可以编写一个没有实际作用的描述符类实现 __delete__ 方法,就当作练习。

图 20-6:在 Python 控制台中执行 help(LineItem.weight) 和 help(LineItem) 命令时的截图