从Python2.2起,所有内置类型现在都能直接创建子类。
将字符串属性名称顺序赋值给特殊的__slots__类属性,新式类就有可能限制类的实例将有的合法属性集,又能够优化内存和速度性能。
这个特殊属性一般是在class语句顶层内将字符串名称顺序赋值给变量__slots__而设置:只有__slots__列表内的这些变量名可赋值为实例属性。实例属性名必须在引用前赋值,即使是在__slots__中也是这样。
函数装饰器是写成一行,就在定义函数或方法的def语句之前,而且由@符号,后面跟着所谓的元函数组成,也就是管理另一函数的函数。
例如:
class C: @staticmethod def meth(): ...
类装饰器类似于函数装饰器,但是,它们在一条class语句的末尾进行,并把一个类名重新绑定到一个可调用对象。
例如:
def decorator(aClass):... @decorator class C:...
元类是一种类似的基于类的高级工具,其用途往往与类装饰器有所重合。它们提供了一种可选的模式,会把一个类对象的创建导向到顶级type类的一个子类,在一条class语句的最后:
class Meta(type): def __new__(meta, classname,super,classdict):... class C(metaclass=Meta):...
元类通常重新定义type类的__new__或__init__方法,以实现对一个新的类对象的创建和初始化的控制。直接效果就像类装饰器一样,是定义了在类创建时自动运行的代码。
两种方法都可以用来扩展一个类或返回一个任意的对象来替代它——几乎是拥有无限的,基于类的可能性的一种协议。