关于python中元类的理解
这篇博客讲得很好,先贴在这。
简而言之
元类就是类的类,python中一切皆对象,类也是一种对象,是元类的对象。我们在创建字符串对象时会使用str,在创建整形变量对象时会使用int,同样,对于类,我们也可以使用Metaclass。
Python中默认的metaclass是type,我们可以通过type(…)来创建类,只需要给出类名,父类,属性等。一般来说是通过__new__方法来创建的,__new__方法是在__init__前执行。
额外
我们如果不想用type,想用自己定义的元类来创建类也可以,只需要自定义一个类来继承type即可,然后在类中给出Metaclass=selfclass,或者赋值属性__metaclass__也行。
一般比较常看到的元类有abc.MetaClass,这是创建抽象类的。