动态创建类可以使用type
函数来实现,type
可以获取对象的类型,还可以用于动态创建类。
创建的语法如下:
type(name, bases, dct)
name: 类名称 (字符串)
bases: 类的基类 (元组)
dct: 类的属性和方法 (字典)
两个例子:
简单:
MyClass = type('MyClass', (), {'x': 1})
上面的相当于:
class MyClass:
x = 1
带基类
class BaseClass:
def base_method(self):
return "Method in BaseClass"
DynamicClass = type('DynamicClass', (BaseClass), {'x': 1})
# 使用
obj = DynamicClass()
这种动态创建的方式可以用来构造一个低代码后端框架(如用填入yaml或者xml方式进行相似度较高的模块开发)。