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