【Python基础】Python面向对象 - 2 - 类的高级主题

扩展内置类型

从Python2.2起,所有内置类型现在都能直接创建子类。


钻石继承/菱形继承


slots实例

将字符串属性名称顺序赋值给特殊的__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__方法,以实现对一个新的类对象的创建和初始化的控制。直接效果就像类装饰器一样,是定义了在类创建时自动运行的代码。

两种方法都可以用来扩展一个类或返回一个任意的对象来替代它——几乎是拥有无限的,基于类的可能性的一种协议。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值