[Python] Python 创建动态类

23 阅读1分钟

动态创建类可以使用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方式进行相似度较高的模块开发)。