我想编写一个创建动态子类的函数。 例如:
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/