Python面向对象编程指南(pdf+epub+mobi+txt+azw3)
第3章 属性访问、特性和修饰符
一个对象是一系列功能的集合,包括了方法和属性。object 类的默认行为包括设置、获取和删除属性。可以通过修改这些默认行为来决定对象中哪些属性是可用的。
本章会专注于有关属性访问的以下5种方式。
内部集成属性处理方式,这也是最简单的方式。
重温@property修饰符。特性扩展了属性的概念,包含了方法的处理。
使用底层的特殊方法来控制属性的访问:__getattr__() 、__setattr__() 和__delattr__() 。这些特殊方法会简化属性的处理过程。
使用__getattribute__() 方法在更细粒度的层面上操作属性,也可以用来编写特殊的属性处理逻辑。
最后,会介绍一些修饰符。它们用于属性访问,但它们的设计也会相对复杂些。修饰符在Python中的特性、静态方法和类方法中被广泛使用。
本章会具体介绍默认方法,我们需要知道在什么情况下需要重写这些默认行为。在一些情形下,需要使用属性完成一些不仅仅是一个实例变量能够完成的工作。在其他情况下,我们可能需要禁止属性的添加,也可能在一些场景需要创建逻辑更为复杂的属性。
正如我们研究修饰符那样,我们会从Python内部的工作机制入手。我们不会经常显式地使用修饰符,而是隐式地使用它们。在Python中,修饰符能够被用来完成很多功能。
3.1 属性的基本操作
默认情况下,创建任何类内部的属性都将支持以下4种操作。
创建新属性。
为已有属性赋值。
获取属性的值。
删除属性。
我们可以使用如下简单的代码来对这些操作进行测试,创建一个简单的泛型类并将其实例化。