干货分享 Python进阶之浅谈Python 面向切面编程与元类

在 Python中,实例对象是由类生成的,而类本身也是可以被传递和自省的对象。那么类对象是用什么创建和生成的呢?答案是元类,元类就是一种知道如何创建和管理类的对象。

让我们回顾一个内置函数type(),type不仅可以返回对象的类型,而且可以使用类名称、基类元组、类主体定义的字典作为参数来创建一个新类对象:

python 3以后,默认的元类皆为type了,显式定义元类的时候需要在基类元组中提供metaclass关键字,class Foo(metaclass=type)如此定义。推荐一个我的python学习裙 五八八零九零九四二 大家一起进来交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊免费领取。

使用元类的时候,一般会自定义一个继承自type的子类,并重新实现init()与new()方法:

另外一个可行的方法就是使用元类了:

元类的一个主要用途就是检查收集或者更改类定义的内容,包括类属性、类方法、描述符等等。

元类与基类

元类中除了可以定义init和new方法外,还可以定义其它的属性和方法:

属性访问是这样的:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180108A0C3UP00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区