在 Python中,实例对象是由类生成的,而类本身也是可以被传递和自省的对象。那么类对象是用什么创建和生成的呢?答案是元类,元类就是一种知道如何创建和管理类的对象。
让我们回顾一个内置函数type(),type不仅可以返回对象的类型,而且可以使用类名称、基类元组、类主体定义的字典作为参数来创建一个新类对象:
python 3以后,默认的元类皆为type了,显式定义元类的时候需要在基类元组中提供metaclass关键字,class Foo(metaclass=type)如此定义。推荐一个我的python学习裙 五八八零九零九四二 大家一起进来交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊免费领取。
使用元类的时候,一般会自定义一个继承自type的子类,并重新实现init()与new()方法:
另外一个可行的方法就是使用元类了:
元类的一个主要用途就是检查收集或者更改类定义的内容,包括类属性、类方法、描述符等等。
元类与基类
元类中除了可以定义init和new方法外,还可以定义其它的属性和方法:
属性访问是这样的:
领取专属 10元无门槛券
私享最新 技术干货