第3章 属性访问、特性和修饰符

    一个对象是一系列功能的集合,包括了方法和属性。object类的默认行为包括设置、获取和删除属性。可以通过修改这些默认行为来决定对象中哪些属性是可用的。

    本章会专注于有关属性访问的以下5种方式。

    • 内部集成属性处理方式,这也是最简单的方式。
    • 重温@property修饰符。特性扩展了属性的概念,包含了方法的处理。
    • 使用底层的特殊方法来控制属性的访问:getattr()、setattr()和delattr()。这些特殊方法会简化属性的处理过程。
    • 使用getattribute()方法在更细粒度的层面上操作属性,也可以用来编写特殊的属性处理逻辑。
    • 最后,会介绍一些修饰符。它们用于属性访问,但它们的设计也会相对复杂些。修饰符在Python中的特性、静态方法和类方法中被广泛使用。

    本章会具体介绍默认方法,我们需要知道在什么情况下需要重写这些默认行为。在一些情形下,需要使用属性完成一些不仅仅是一个实例变量能够完成的工作。在其他情况下,我们可能需要禁止属性的添加,也可能在一些场景需要创建逻辑更为复杂的属性。

    正如我们研究修饰符那样,我们会从Python内部的工作机制入手。我们不会经常显式地使用修饰符,而是隐式地使用它们。在Python中,修饰符能够被用来完成很多功能。