通过元类创建一个Python类

对着背影说爱祢 提交于 2019-12-08 15:27:39

通过元类创建一个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都是类。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!