通过元类创建一个Python类

通过元类创建一个Python类

最开始学pytohn的时候我们这样定义类

class ClassName:
    pass

当熟悉了元类的概念之后我们还可以这样创建

ClassName = type("ClassName",(),{})

当有父类的时候

class ClassName(object):
    pass

等价于

ClassName = type("ClassName",(ojbect),{})

当需要初始化值得时候

class ClassName:
    self.num = 1
    pass

此时等价于

ClassName = type("ClassName",(),{"num":1})

当需要绑定某个函数的时候

class ClassName(self):
    def print_sth(self):
        print('xxxxx')
    pass

等价于

def printSth(self):
        print('xxxx')
ClassName = type("ClassName",(),{"printSth":printSth})

注:上面不带双引号的ClassName都是类。

猜你喜欢

转载自www.cnblogs.com/jie9527-/p/12005855.html