类----来源于cookbook第八章
记录第八章中比较有意思的部分
强制类型检查
可以使用描述符和MIXIN类的方式来对其进行检查。
1 |
|
下面来解释一下流程:
- 首先
Descriptor
只是一个简单的描述符基类,且只有set
方法 Typed
,Unsigned
,MaxSized
也是描述符,这些二级描述符继承自Descriptor
,并重写了其set
方法,分别检测赋值时类型、长度。Integer
,UnsignedInteger
,String
,SizedString
是继承上述描述符类,并基于上述限制来进行组合。由于默认没有构造函数,会使用基类的构造函数。同样也是描述符。- 直接使用的描述符是
Integer
,UnsignedInteger
,String
,SizedString
同样,也可以使用装饰器的方式来完成,且速度更快!
委托属性的访问
当类访问到不存在的属性时,会调用__getattr__
这个方法
但是不适用于双下划线开头结尾的魔法方法
1 |
|
MAXIN技术
主要是用来继承,通过调用super()
函数来调用另一个类的一些方法。
目的是用来使用一些方法扩充其他的类。
1 |
|
一般都是为了已有的类增加一些可选的功能而设计的,标准库中很多
mixin类不能被实例化,或者说实例化没有意义
mixin类也主要用于继承中
使用字符串来访问对象的属性
可以使用getattr()
函数来通过字符串调用类的方法
1 |
|