metaclass

Posted dongmengze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了metaclass相关的知识,希望对你有一定的参考价值。

  • 指定类C的元类是MyType
class MyType:
    def __init__(cls, *args, **kwargs):
        print(‘here!‘)

#执行到这一步的时候,会先调用MyType的构造函数
class C(metaclass=MyType):
    def __init__(self):
        pass

 

  • 类的对象obj由类C创建,类C自身也是一个对象,是由MyType类创建的
class MyType(type):
    def __init__(cls, *args, **kwargs):
        print(‘here!‘)

class C(metaclass=MyType):
    def __init__(self):
        pass
#对象后面跟(),是要执行类中的call方法
#执行到C()的时候,会先调用MyType的call方法
obj = C()

 

以上是关于metaclass的主要内容,如果未能解决你的问题,请参考以下文章

深刻理解Python中的元类(metaclass)

深刻理解Python中的元类(metaclass)

深刻理解Python中的元类(metaclass)

Groovy:this.metaClass 与 instance.metaClass

GroovyMOP 元对象协议与元编程 ( 方法注入 | 使用 MetaClass 注入静态方法 )

为什么python metaclass在此代码中不起作用?