python - 在函数中动态创建Python子类

标签 python

我想编写一个创建动态子类的函数。 例如:

def get_class(num):
    ...
    ...
    return _class

这个函数接受一个整数num,然后构造这样一个类

class Test(BaseClass):
    attr_1 = 1
    attr_2 = 1
    ...
    attr_num = 1

然后返回。

我想知道这是否可以在不编写元类的情况下实现。

最佳答案

正如另一个答案中提到的,您可以使用 type,在这种情况下,您可以动态构造属性:

def foo(num, **kwargs):
    kwargs.update({'num': num})
    return type('Foo', (BaseClass,), kwargs)

或者,如果您不需要动态键,您可以简单地手动实例化一个类:

def foo(num):
    class Foo(BaseClass):
        num = num
    return Foo

关于python - 在函数中动态创建Python子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773489/

相关文章:

python - 如何通过 SPI 加快我的 ADS 芯片的采样率

python - 有没有办法知道 QGridLayout 中元素的 X 和 Y 坐标?

python - numpy.where 函数有什么问题?

python - 无法弄清楚 pytorch 代码中的就地操作?

python - 如何使用 pandas read_pickle 从 qrc 资源文件中读取包含 pandas 数据框的 pickle 文件?

python - 选择字典中值列表中的元素

python - 为图像添加发光效果

python - 制作图后 Matplotlib 图更改以供发布

Python:绞刑吏游戏问题

python - 最后 N 个数据点的 Pyspark 结构化流窗口(移动平均)